ホームページ > 記事 > ウェブフロントエンド > JS Hillアルゴリズムのソートの詳細説明
Hill アルゴリズムも原理的には挿入ソートの一種です。Hill アルゴリズムを理解する前に、JS 挿入ソートの詳細な説明 を理解する必要があります。この記事が皆さんのお役に立てれば幸いです。
原則:
ヒルソートは、挿入ソートに基づいてデータをグループ化し、元のデータをいくつかのサブセットに分割し、次に各サブセットをソートするなど、最終的に完全にソートされるまで継続的にサブセットに分割します。
シーケンス: [3,5,2,4,7,6,8,9,1]
まず、ギャップに基づいてシーケンス全体をサブセットに分割し、サブセットを並べ替えます (ギャップは通常、Math.floor(arr.長さ/2))
ギャップ:4
分割されたサブセットは: 3,7,1 5,6 2,8 4,9 がサブセットです
サブセットを並べ替えた後: 1,3, 7 5,6 2,8 4 ,9
数値は: [1,5,2,4,3,6,8,9,7]
ギャップ値を変更して再度並べ替えます
ギャップ: 2
…… の値まで停止します。ギャップは0です
var arr=[3,5,2,4,7,6,8,9,1];var gap=Math.floor(arr.length/2); while(gap>0){ for(var i=gap;i<arr.length;i++){ var temp=arr[i]; var j=i-gap; while(j>=0&&arr[j]>temp){ arr[j+gap]=arr[j]; arr[j]=temp; j-=gap; } arr[j+gap]=temp; } gap=Math.floor(gap/2); } 输出结果: [1, 2, 3, 4, 5, 6, 7, 8, 9]関連推奨事項:
JavaScriptでよく使用される基本的なソートアルゴリズムの例分析
javascript配列重複排除クイックソートの詳細な説明アルゴリズムの例
以上がJS Hillアルゴリズムのソートの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。