ヒルソートは直接挿入ソートの改良版であり、挿入ソートの一種でもあります。改善点は、各走査にステップ サイズを設定し、直接挿入ソートを実行することです。走査の完了後、ステップ サイズが 1 以下になるまでステップ サイズが半分になります。
(推奨チュートリアル: Java 入門チュートリアル)
各移動はステップ距離移動するため、直接挿入ソートは毎回 1 ステップしか移動しないため、ヒルソートの方が直接挿入ソートよりも効率的です。
(学習ビデオの推奨: java コース)
アルゴリズム実装:
public static void shellSort(int[] array) { int step = array.length; while (true) { step /= 2; for (int i = 0; i < step; i++) { for (int j = i + step; j < array.length; j += step) { int tmp = array[j]; int k = j; while (k >=step && array[k - step] > tmp) {//将大于tmp的数往后移 array[k] = array[k - step]; k-=step; } array[k] = tmp;//插入 } } if (step <= 1) return; } }
以上がヒルソートアルゴリズムの実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。