|
まず上記のケースを考えてみましょう。
6・1・8・5・・・と、数字がランダムにならんでいますね。 このデータを昇順(挿入ソート参照)に並べ替えるケース を考えます。 |
|
|
まず、中央のデータに着目します。
この場合は5という値になりますね。 そして、この数値の並びのなかで、5を基準にして、 より小さいものを左側へ、大きいものを右側へ移動させます。 さて、次に具体的にやってみましょう。 |
|
|
ここで、両端のデータに着目します。
左端のデータを指し示すポインタ(青色の記号)を p1 と命名します。 右端のデータを指し示すポインタ(黄色の記号)を p2 と命名します。 次はまず、p1 の役目を説明します。 |
|
|
p1は、左から右へ向かって、基準以上、つまり5以上の数字を探します。
今回は、左端が6なので、いきなり、5以上ですね。 だから移動無しです。 |
|
|
p2 は、右から左に向かって基準以下、つまり5以下の値を探します。
この場合は、そう、2のところで止まります。 そうしたら、次に、p1 の示す内容と p2 の示す内容を交換します。 |
|
|
こんな感じです。
交換したら、p1 を一つ右に、p2 を一つ左に進めておきます。 |
|
|
p1 は再び、左から右に向かって、5以上のデータを探します。
今度は8の所でとまります。 |
|
|
p2 は、右から左に向かって、5以下のデータを探します。
これは3の所で動きません。 |
|
|
ふたたび、p1 と p2 の示すデータを交換します。
そして、p1 は右に一つ、p2 は左に一つすすめます。 |
|
|
p1 と p2 が一致したので、これで処理は完了です。
|
|
最初からもう一度観るには、下のボタンを押して下さい。
|
| |
|
全然整列して無いでは無いかって?
つづきがあります。近日アップ予定、請うご期待。 |