🔀
並べ替えのアルゴリズム:応用編
予備知識
動作手順までの内容
変数定義追加
-
:p 以上の数で最も近い底2の累乗n -
: ある対数の底k
挿入ソート
- 最初の要素はソート済みと見なす。
- 次の要素を選び、ソート済みの部分に適切な位置へ挿入する。
- すべての要素を順番に処理するまで繰り返す。
挿入ソートの一般化

| 組合せ数 | 3 | 5 | 6 | 5 | 3 |
|---|---|---|---|---|---|
| 記号表記 |
シェルソート
- 配列の長さに基づいて初期の間隔を決める。
- 間隔ごとに、離れた要素同士を比較しながら挿入ソートを行う。
- 間隔を徐々に縮めて、再度ソートを繰り返す。
シェルソートの一般化

マージソート
- 配列を半分に分割する。
- 分割した配列をさらに細かく分け、要素1つになるまで繰り返す。
- 小さな配列同士をソートしながら結合する。
- すべての要素が結合されるまで繰り返す。
マージソートの一般化

データ個数が底2の累乗でないとき
その差の分だけ各分割段階における比較回数が減る
上記の場合なら
各分割段階において最小単位1まで分割が済んだ部分については
次の分割段階へ移行しないため
その分だけ、さらに比較回数が減る
冒頭の計算量の式はこれらを表した式になっている
Discussion