Subsections
これも,教科書に分かりやすく原理が書かれているので,それを使って説明する.説明するまでもなく,教科書を一読すれば,これも直ちに理解できるであろう.
計算量のオーダーに関しては,教科書の説明は不十分である.先ほどと同様に,左から
個,整列が完了して,
個目を整列させることを考える.
- 数列の
番目が挿入されるべき位置を見つけるための比較の平均回数(期待値)は,
である.
- 位置が見つかった場合,それを挿入するために,配列は平均で
の交換が必要である.
このことから,数列の
番目を正しい位置に挿入するためには,合わせて
回の計算が必要となる.大きさが
の数列全体では,
|
|
|
|
が大きい場合のスターリングの近似( )を使うと |
|
|
|
|
|
|
(2) |
となる.
が大きい場合,
が支配的で
に比例して,計算量が増加する.従って,計算量のオーダーは,
である.
これまでの計算から,2分挿入ソートは,単純挿入ソートに比べて,2倍程度の速度の増加であることが分かる.
教科書のプログラム(List 1-8)を使った場合の2分挿入ソートの様子を図
2に示す.ただし,教科書とは異なり,数列(配列)の大きさは
としている.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2005-11-21