javascriptはヒルの並べ替えを実現します.
973 ワード
ヒルの並べ替え
ヒルの順序付け(Shell's Sort)は、挿入順序の一種であり、「縮小増分順序付け」(Diminishing Increment Sort)とも呼ばれ、直接並べ替えアルゴリズムを挿入するより効率的な改良バージョンである.ヒルの並べ替えは非定常的なソートアルゴリズムです.この方法はD.L.Shellが1959年に提出したことから名付けられました.
ヒルの順序付けは記録を下付きの一定の増分でグループ分けし、各グループに直接挿入してソートアルゴリズムを並べ替えることです.インクリメンタルが徐々に減少するにつれて、各グループに含まれているキーワードはますます多くなり、インクリメンタルが1に減じると、全体のファイルがちょうど一つのグループに分割され、アルゴリズムは終了する.
順序付けを挿入する前に無秩序な配列に相当し、秩序性を向上させました.
ヒルの順序付け(Shell's Sort)は、挿入順序の一種であり、「縮小増分順序付け」(Diminishing Increment Sort)とも呼ばれ、直接並べ替えアルゴリズムを挿入するより効率的な改良バージョンである.ヒルの並べ替えは非定常的なソートアルゴリズムです.この方法はD.L.Shellが1959年に提出したことから名付けられました.
ヒルの順序付けは記録を下付きの一定の増分でグループ分けし、各グループに直接挿入してソートアルゴリズムを並べ替えることです.インクリメンタルが徐々に減少するにつれて、各グループに含まれているキーワードはますます多くなり、インクリメンタルが1に減じると、全体のファイルがちょうど一つのグループに分割され、アルゴリズムは終了する.
順序付けを挿入する前に無秩序な配列に相当し、秩序性を向上させました.
var arr = [49, 38, 65, 97, 76, 13, 27, 49, 55, 04];
var len = arr.length;
for (var fraction = Math.floor(len / 2); fraction > 0; fraction = Math.floor(fraction / 2)) {
// math.floor ; parseint
for (var i = fraction; i < len; i++) {
for (var j = i - fraction; j >= 0 && arr[j] > arr[fraction + j]; j -= fraction) {
var temp = arr[j];
arr[j] = arr[fraction + j];
arr[fraction + j] = temp;
}
}
}