Subsections
原理については,教科書に分かりやすくかかれているので,それを使って説明する.説明するまでもなく,教科書を一読すれば,直ちに原理は理解できるであろう.
計算量のオーダーについて,簡単に説明する.左から
個,整列が完了して,
個目を整列させることを考える.
- 数列の
番目が挿入されるべき位置を見つけるための比較の平均回数(期待値)は,
である.
- 位置が見つかった場合,それを挿入するために,配列は平均で
の交換が必要である.
このことから,数列の

番目を正しい位置に挿入するためには,合わせて

回の計算
2が必要となる.大きさが

の数列全体では,
となる.

が大きい場合,

が支配的で

に比例して,計算量が増加する.このような場合,計算量のオーダーを表す記号として

と書くのは,以前述べたとおりである.
教科書のプログラム(List 1-7)を使った場合の単純挿入ソートの様子を図
1に示す.ただし,教科書とは異なり,数列(配列)の大きさは

としている.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2005-11-21