***CombSort(コムソート) 11のデモとコーディング例(JavaScript)***


HTML5 : canvas

Source Code

もっとも単純で、もっとも遅いソートアルゴリズム「バブルソート」。
これに、ちょっとした改良を加えると劇的に早くなる。
それが[combsort (コムソート) ]
私はこいつが大好きだ!

***コムソートとは***

バブルソートが隣同士を順に比較・交換してゆくのに対し
コムソートでは、ある距離離れた要素を比較・交換する。
その距離は段階毎に一定の係数(通常は1.3)で割って短縮され、
距離の小さい所では11を起点とするように矯正するものを
コムソート11と呼ぶ。

***コムソートの長所***

仕組みが簡単でコード記述量もかなり少ない。
でありながら、
高度なロジックに匹敵する処理速度が得られる。

***コムソートの短所***

同じ数値の要素間に於いて、
ソート前と後で順序は保証されない。
(だが対策は簡単:StableCombSort)

実験的・経験的に発明された※1 経緯もあり、
数学的に厳密に計算量などを説明しづらい。
ので、「お固い」人には敬遠される向きもある。

※1 S.Lacy氏とR.Box氏により1991年に発表された。
1.3や11という数字も、実験による調整の結果。

***続きがあります***


HOME