初心者ですがクイックソートについて質問があります
■ このスレッドは過去ログ倉庫に格納されています
副プログラムを再帰的に呼び出すのは分かるのですが、配列の最初と最後の添字を入れる変数に
最初に具体的な数字を入れなくてもいいのはなぜですか? >>2
擬似言語で学習しているのですが、最初の添字を入れる変数Leftと最後の添字を入れるRightを宣言して
副プログラムの引数に設定すれば自分でLeftに0やRightにnを入れなくても勝手に認識してくれるのですか? 俺がしってるどんな実言語もしない
ちょっとコード貼ってってみてくれんか その擬似言語ってのが
この板の誰にもわからんと思う >>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
| ↓
■ >>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)
↓ >>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にセットされているでしょ?
わかりますか? >>9
そうか、このプログラムを使う時に最初はユーザーが
QuickSort {ソートしたい配列, 0, 末の添字}
と入力するからプログラムの記述にはLeftとRightの初期値が必要ない
という理解でOKですか? よくソートってアルゴリズムの勉強で出てくるけど
使う機会ってあるの?
関数一発とかじゃないの? 高層ビルの建築家は釘を打てなきゃいけない
SEはコード書けないといけない
レベルの根性論 体育の先生がパソコン部の顧問になって
マウスクリック10セットさせられたなんて冗談が昔あったな
根性論で思い出した >>13
> 関数一発とかじゃないの?
その関数は誰かが作ったものなんだよ。
低学歴の馬鹿プログラマは、
そういう高度な仕事をする機会はない。 そういって彼は自社フレームワークを作ったのであった 高度かどうかなんてのは状況によって違うに決まってるだろ馬鹿たれが。
アバウトに書いただけだ。
判断は各自がすることだろ?w
そんな簡単なことも理解できずに
「揚げ足とったたわ!おれって天才!」
とか笑える。ウソつきの馬鹿め! クイックソートもわからないジャップは知恵遅れ民族と先のサミットで認定されてた 場面によって適切なソートが選択できることが大事かな? いまどきソート処理ひとつでいつまでやってんだって思う すさまじい件数があるときはそもそもソートをしない仕組みから手を入れる必要がある 濁音とか渡辺と渡邊はどっちが先かみたいな場合とかあるだろ ソートなんてインデックスで頭出ししとけば普通に速くなるだろ。 例題にしても糞読みづらいプログラムだな
フローの切れ目がサッパリ分からん…
情報技術者ってこんな出題者のオナニーに付き合わされるのかw 機械がわかりにくいのを技術者のせいにするやつはまずいないが
プログラマはなぜかそういう価値観がまかり通っている >>32
それはよほどのバカコーダー
ま、いまどきの20代でp言語は皆バカだが
この板見ててもp言語は本当にクズしかいない 行列をランダムに入れ替えて順序付けられたら完了
順序付けられて無かったらやり直し クイックソート如きさらっと実装できるくらいの教養は欲しいよね。
教養ね。
製品コードに自作のソートロジック入れてたら問い詰めるけど。 理念と情熱で支えられてたくそシステム
不誠実なやつが管理者になって周りを怒らせ
あっという間にくそおもしろくもない普通の作りにとってかわられそう ■ このスレッドは過去ログ倉庫に格納されています