副プログラムを再帰的に呼び出すのは分かるのですが、配列の最初と最後の添字を入れる変数に
最初に具体的な数字を入れなくてもいいのはなぜですか?
探検
初心者ですがクイックソートについて質問があります
■ このスレッドは過去ログ倉庫に格納されています
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にセットされているでしょ?
わかりますか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【💴】日本人を相対的に貧しくした円安 日銀のわずかな利上げでは効果なし 主要通貨すべてに負ける円 [ぐれ★]
- 【日独】「残業しない」「バカンスを取る」ドイツ人に、日本人は2倍働いても敵わない [七波羅探題★]
- 【野球】巨人・阿部監督が嘆いた令和の選手気質 選手時代「監督に何か言われる前にすいません!と」「今できるのは坂本、丸ぐらい」 [冬月記者★]
- 「おかずは5品から3品、2品に」家計簿から見える物価高騰 8.9兆円の対策に専門家が警告「100%違う」 [ぐれ★]
- 【サッカー】カズ、J3福島入り確実に!期限付き移籍で5年ぶりJ復帰 “還暦Jリーガー”誕生へ [征夷大将軍★]
- タワマンに戻りたい…子どものため郊外の庭付き一軒家に引っ越した世帯年収1,600万円の40代パワーカップル「心底後悔しています」 ★4 [樽悶★]
- 【U-NEXT】プレミアリーグ総合 ★46
- NFL 2025/26 week16 part 2
- 競輪実況1633
- 中山競馬5回5日目
- とらせん モレッタ獲得 ★3
- NFL 2025/26 week16 part 1
- アメリカと中国で日本を取り合ってもらうのが一番いいのに、高市政権はなんで真逆のことしてるの [455031798]
- 【朗報】首相、1人あたり国民総所得「10年後に150万円増やす」 [974680522]
- 日銀利上げ、FRB利下げ、それでも円安。何故かを解説します [757644362]
- うんこぶりぶりブリザード🥶💩🧊🏡
- 【高市朗報】50年ペアローン、Z世代の若者に空前の大ブームに「夫婦で50年払えば年間の支払いはほぼ1/100で済む」【石破悲報】 [517459952]
- 【悲報】地方人「円安の方がいいじゃん。工場も稼働率が上がって給料上がるし、農作物の海外輸出や観光で儲かるじゃん」9万いいね [483447288]
