/**
* 値交換演算
* arr 演算対象の配列
* i 演算対象の要素のインデックス値
* j 演算対象の 2 つの要素間の距離
*/
関数Refer(arr , i, j){
var change = (arr[i] - arr[i - j])
if (change) {
value; = arr[i];
arr[i] = arr[i - j];
arr[i - j] = 値を返します。
}
else {
return arr;
}
}
//挿入 sort
function insert(array){
for (var i = 1, len = 配列; i
if (配列[i]
}
>}
return array;
}
上記の部分は挿入ソート、次にヒル ソートです:
//Hill sort
function shell(array){
var length = array.length, for ( var i = Math.floor(length / 2); i > 0; i = Math.floor(i / 2)) {
for (var j = i; j if (array[j] < array[j - i]) {
refer(array, j, i);
}
else {
}
}
}
return array;
}
2 つのメソッドで使用される Refer メソッドは同じメソッドです。最後に、マージソート:
コードをコピー
var arrLong = arr1.length > arr1 : arr2;
var arrShort = arr1.length <= arr2.length ? 🎜>var arr = [];
for (var i = 0, l = arrShort.length; i for (var j = 0, len = arrLong.length; j if (arrShort[i] < arrLong[j]) {
arr.push(arrShort[i]); {
for (var m = 0, n = arrLong.length; m < n; m ) {
arr[arr.length] = arrLong[m]
}
Break;
else {
arr.push(arrLong[j]);
続行
}
}
arr を返す;
}
良い提案がある学生はメッセージを残してください。ここでは詳細を説明する必要はありません。コードを見てください。