クイックソートの考え方?
そこで、クイックソートのアルゴリズムで躓いています。
10,20,11,19,13,17,14,16,15
真中の値 13 を基準値として使う。
左から基準値と比較してより大きい値は 20。
右から基準値と比較して20 の手前までのより小さい値11。
両者を置換。
10,11,20,19,13,17,14,16,15
真中の値 13 を基準値として使って比較。
左から基準値と比較してより大きい値は 20。
右から基準値と比較して20 の手前までのより小さい値はない。
基準値と20とを置換。
10,11,13,19,20,17,14,16,15
真中の値 20 を基準値として使って比較。
左から基準値と比較してより大きい値はない。
右から基準値と比較してより小さい値は15。
両者を置換。
10,11,13,19,15,17,14,16,20
真中の値 15 を基準値として使って比較。
左から基準値と比較してより大きい値は19。
右から基準値と比較してより小さい値は14。
両者を置換。
10,11,13,14,15,17,19,16,20
真中の値 15 を基準値として使って比較。
左から基準値と比較してより大きい値はない。
右から基準値と比較してより小さい値はない。
これで15が真中と確定。
この後は、「同じ過程を再帰的に二つのサブセットに適用」するのは同じ。
これは、単に、クイックソートの処理手順を追えばわかる話です。
問題は、「なぜ、『右から基準値と比較して20 の手前まで』なのだ?」ということ。
そうでないと、「堂々巡りに陥るからだ!」というのはわかります。
が、私の理解はそこで立ち往生したままです。
還暦を迎えた私の頭は、オーバーヒート気味。
「そこは、このように考えたらよい」という回答をお願いします。
※自らの理解力と理解度の問題で質問するのは非常に恐縮。
※しかし、後一歩の理解の壁を超えたいので質問します。