副プログラムを再帰的に呼び出すのは分かるのですが、配列の最初と最後の添字を入れる変数に
最初に具体的な数字を入れなくてもいいのはなぜですか?
探検
初心者ですがクイックソートについて質問があります
■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
2019/11/23(土) 14:12:25.882019/11/23(土) 14:19:05.06
使うときまでには入ってるだろ
3仕様書無しさん
2019/11/23(土) 14:26:34.93 >>2
擬似言語で学習しているのですが、最初の添字を入れる変数Leftと最後の添字を入れるRightを宣言して
副プログラムの引数に設定すれば自分でLeftに0やRightにnを入れなくても勝手に認識してくれるのですか?
擬似言語で学習しているのですが、最初の添字を入れる変数Leftと最後の添字を入れるRightを宣言して
副プログラムの引数に設定すれば自分でLeftに0やRightにnを入れなくても勝手に認識してくれるのですか?
2019/11/23(土) 14:31:37.68
俺がしってるどんな実言語もしない
ちょっとコード貼ってってみてくれんか
ちょっとコード貼ってってみてくれんか
5仕様書無しさん
2019/11/23(土) 14:55:43.94 その擬似言語ってのが
この板の誰にもわからんと思う
この板の誰にもわからんと思う
6仕様書無しさん
2019/11/23(土) 15:34:19.78 >>4
○大域:整数型:array[9] = {5,4,7,6,8,3,1,2,9}
○副プログラム:QuickSort {整数型:array [ ], 整数型:left, 整数型 : right}
○整数型 : left, right, i, k, w
・i ←left + 1
・k←right
■ i < k /* 条件がtrueなら繰り返し */
|
| ■ array[i] < array [left] かつ i < right
| | ・i ← i + 1
| ■
|
| ■array[k] >= array[left] かつ k > left
| | ・k ←k - 1
| ■
|
| ↑ i < k /* 条件がtrueなら以下の処理 */
| | ・w ← array [i]
| | ・array[i] ← array[k]
| | ・array[k] ←w
| ↓
■
○大域:整数型:array[9] = {5,4,7,6,8,3,1,2,9}
○副プログラム:QuickSort {整数型:array [ ], 整数型:left, 整数型 : right}
○整数型 : left, right, i, k, w
・i ←left + 1
・k←right
■ i < k /* 条件がtrueなら繰り返し */
|
| ■ array[i] < array [left] かつ i < right
| | ・i ← i + 1
| ■
|
| ■array[k] >= array[left] かつ k > left
| | ・k ←k - 1
| ■
|
| ↑ i < k /* 条件がtrueなら以下の処理 */
| | ・w ← array [i]
| | ・array[i] ← array[k]
| | ・array[k] ←w
| ↓
■
7仕様書無しさん
2019/11/23(土) 15:34:57.04 >>6 の続き
↑ array[left] > array [k]
| ・w ← array[left]
| ・array[left] ← array[k]
| ・array[k] ← w
↓
↑left < k - 1
| ・QuickSort (array, left, k - 1)
↓
↑k + 1 < right
| ・QuickSort (array, k+1, right)
↓
↑ array[left] > array [k]
| ・w ← array[left]
| ・array[left] ← array[k]
| ・array[k] ← w
↓
↑left < k - 1
| ・QuickSort (array, left, k - 1)
↓
↑k + 1 < right
| ・QuickSort (array, k+1, right)
↓
8仕様書無しさん
2019/11/23(土) 15:36:34.23 >>5
基本情報技術者試験で使うやつです
基本情報技術者試験で使うやつです
9仕様書無しさん
2019/11/23(土) 16:38:12.71 >>8
ああ、なるほど。
これはleftとrightは引数であって
指定するという意味です。
QuickSortを一番最初に呼び出すときに、
Sortする範囲の下のIndexをLeft,上のIndexをRightに
指定すると考えればいいわけでして、
その最初の呼び出すところは、QuickSortを呼び出すユーザ側(?)
ということですので、
問題文には記載されていないということです。
次回から(2回目以降)の呼び出しは再帰呼び出しですから
自分自身のなかからleftとrightはセットして呼び出されています。
| ・QuickSort (array, left, k - 1)
↓
↑k + 1 < right
| ・QuickSort (array, k+1, right)
これら2つの呼び出しのところで、
それぞれrightがk-1にセットされて
leftのところがk+1にセットされているでしょ?
わかりますか?
ああ、なるほど。
これはleftとrightは引数であって
指定するという意味です。
QuickSortを一番最初に呼び出すときに、
Sortする範囲の下のIndexをLeft,上のIndexをRightに
指定すると考えればいいわけでして、
その最初の呼び出すところは、QuickSortを呼び出すユーザ側(?)
ということですので、
問題文には記載されていないということです。
次回から(2回目以降)の呼び出しは再帰呼び出しですから
自分自身のなかからleftとrightはセットして呼び出されています。
| ・QuickSort (array, left, k - 1)
↓
↑k + 1 < right
| ・QuickSort (array, k+1, right)
これら2つの呼び出しのところで、
それぞれrightがk-1にセットされて
leftのところがk+1にセットされているでしょ?
わかりますか?
10仕様書無しさん
2019/11/23(土) 16:56:44.88 >>9
そうか、このプログラムを使う時に最初はユーザーが
QuickSort {ソートしたい配列, 0, 末の添字}
と入力するからプログラムの記述にはLeftとRightの初期値が必要ない
という理解でOKですか?
そうか、このプログラムを使う時に最初はユーザーが
QuickSort {ソートしたい配列, 0, 末の添字}
と入力するからプログラムの記述にはLeftとRightの初期値が必要ない
という理解でOKですか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【スクープ】敏腕プロデューサーSKY-HIが未成年女性アイドル(17)を深夜に自宅呼び出し、〈かわいすぎる死ぬ〉〈だぁいすき〉などのLINEも [Ailuropoda melanoleuca★]
- 胸を強調した女性アニメキャラをファミレスがコラボ企画で起用。「この表現はどうなのか」SNSで疑問の声 ★3 [少考さん★]
- 安心の「国産EVバス」その心臓は中国製 「どこまで国産なのか問題」純国産なんてあり得ない!? [少考さん★]
- 11月物価、3.0%上昇 食品が高止まり [少考さん★]
- 女子高生が初の司法試験合格 予備ルートの慶応女子高3年「企業法務の弁護士になりたい」 [ぐれ★]
- 【赤坂サウナ死亡火災】別室でもドアノブがたつく 男性の手に皮下出血、ガラスたたいたか ★4 [ぐれ★]
- 金持ちは性格悪くてケチ👈これマジ? [441978185]
- お前らバカなんだから俺に従っとけばいいんだよ
- 🏡☢核兵器使用推進スレ☢🏡
- 【投資】130万を150万にする方法ない?
- 俺がモテる訳けないんだよな
- ワイ、光ってると言われる
