Subsections

2 単純挿入ソート

原理については,教科書に分かりやすくかかれているので,それを使って説明する.説明するまでもなく,教科書を一読すれば,直ちに原理は理解できるであろう.

計算量のオーダーについて,簡単に説明する.左から$ i$ 個,整列が完了して,$ i+1$ 個目を整列させることを考える.

このことから,数列の$ i+1$ 番目を正しい位置に挿入するためには,合わせて$ i$ 回の計算2が必要となる.大きさが$ N$ の数列全体では,

$\displaystyle \sum_{i=1}^{N-1}i$ $\displaystyle =\frac{(N-1)(N-2)}{2}$    
  $\displaystyle =\frac{1}{2}N^2-\frac{3}{2}N+1$ (1)

となる.$ N$ が大きい場合,$ N^2/2$ が支配的で$ N^2$ に比例して,計算量が増加する.このような場合,計算量のオーダーを表す記号として$ O(N^2)$ と書くのは,以前述べたとおりである.

2.1 単純挿入ソートの様子

教科書のプログラム(List 1-7)を使った場合の単純挿入ソートの様子を図1に示す.ただし,教科書とは異なり,数列(配列)の大きさは$ N=20$ としている.
図 1: 単純挿入ソートの様子.
\includegraphics[keepaspectratio,scale=0.65]{figure/simple_sort.eps}



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
2005-11-21


no counter