主要なソートアルゴリズムの実行時間と比較回数を調査できるよう、Javaで実装しました。(ヒープソートは面倒だったので諦めました)
We implemented major sort algorithm with Java which can examine execution time and number of comparing. (except for the heap sort)
$ javac *.java
$ java Main
バブルソート(隣接交換法) / Bubble sort
比較回数一覧:
データ数 10 : 45 (8477 ns)
データ数 100 : 4995 (281607 ns)
データ数 1000 : 504495 (6032699 ns)
データ数 10000 : 50499495 (146191395 ns)
基本挿入法 / Insertion sort
比較回数一覧:
データ数 10 : 17 (4052 ns)
データ数 100 : 2786 (104340 ns)
データ数 1000 : 251208 (3479585 ns)
データ数 10000 : 25250482 (39498929 ns)
マージソート / Merge sort
比較回数一覧:
データ数 10 : 23 (10214 ns)
データ数 100 : 569 (47320 ns)
データ数 1000 : 9269 (622796 ns)
データ数 10000 : 129748 (1974720 ns)
クイックソート / Quick sort
比較回数一覧:
データ数 10 : 12 (60895 ns)
データ数 100 : 223 (37037 ns)
データ数 1000 : 3095 (453172 ns)
データ数 10000 : 39568 (1589333 ns)
基本選択法 / Selection sort
比較回数一覧:
データ数 10 : 45 (5138 ns)
データ数 100 : 4995 (150464 ns)
データ数 1000 : 504495 (5333749 ns)
データ数 10000 : 50499495 (77303216 ns)
シェルソート(改良挿入法) / Shell sort
比較回数一覧:
データ数 10 : 13 (4002 ns)
データ数 100 : 407 (25862 ns)
データ数 1000 : 7975 (442402 ns)
データ数 10000 : 164188 (3298196 ns)