5 コームソート

5.1 方法

バブルソートに似た方法であるが,比較する対象が異なる. バブルソートの最大の欠点は,ソートが遅いことである.小さな値は左に一つずつしか, 移動できないためである.なぜならば,いつもとなり同士を比較するため,交換はとなりとし かできないからである.

この問題の解決を図るために,最初大きな間隔(ギャップ)で比較して,大きなステップで 移動させるのがコームソートである.そして,だんだん間隔を狭くして,ソートを完了さ せるのである.

5.2 プログラムテクニック

5.2.0.1 グローバル関数

教科書のList 1-6では,ソートする配列はグローバル変数となっており,どの関数からで もアクセスできるようになっている.ここで使われているCombSort()関数と main()関数の外側で,配列sort[N]は宣言されている.このように,関数の外 側で宣言された変数はグローバル変数と呼ばれ,どの関数からでもアクセスできる.

5.2.0.2 返値無しの関数

CombSort()は,値を返さない関数である.この場合,返値の型として, voidと宣言をする.voidとは,"空の"という意味である.

5.2.0.3 引数無しの関数

CombSort()は,引数のない関数である.この場合は,引数の型として,voidと 宣言する.

5.3 コームソートの様子

図 3: コームソートソートの様子.
\includegraphics[keepaspectratio,scale=0.65]{figure/comb_sort.eps}



ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成17年10月27日


no counter