ホームページ > ウェブフロントエンド > jsチュートリアル > JS Hillアルゴリズムのソートの詳細説明

JS Hillアルゴリズムのソートの詳細説明

小云云
リリース: 2018-03-07 10:45:52
オリジナル
1275 人が閲覧しました

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です

JSコード実装:

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]
ログイン後にコピー

関連推奨事項:


JS挿入ソートの詳細な説明

JavaScriptでよく使用される基本的なソートアルゴリズムの例分析

javascript配列重複排除クイックソートの詳細な説明アルゴリズムの例

以上がJS Hillアルゴリズムのソートの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート