バブルソートに似た方法であるが,比較する対象が異なる.
- バブルソートは,いつでもとなり同士と比較し,大小関係が異なれば交換する.
- コームソートは,はじめは遠くのものと比較し,だんだん比較の間隔を狭くする.
最後には,バブルソートと同じようにとなり同士と比較をする.
バブルソートの最大の欠点は,ソートが遅いことである.小さな値は左に一つずつしか,
移動できないためである.なぜならば,いつもとなり同士を比較するため,交換はとなりとし
かできないからである.
この問題の解決を図るために,最初大きな間隔(ギャップ)で比較して,大きなステップで
移動させるのがコームソートである.そして,だんだん間隔を狭くして,ソートを完了さ
せるのである.
教科書のList 1-6では,ソートする配列はグローバル変数となっており,どの関数からで
もアクセスできるようになっている.ここで使われている
CombSort()関数と
main()関数の外側で,配列
sort[N]は宣言されている.このように,関数の外
側で宣言された変数はグローバル変数と呼ばれ,どの関数からでもアクセスできる.
CombSort()は,値を返さない関数である.この場合,返値の型として,
voidと宣言をする.voidとは,"空の"という意味である.
CombSort()は,引数のない関数である.この場合は,引数の型として,
voidと
宣言する.
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
平成17年10月27日