ホームページ > ウェブフロントエンド > jsチュートリアル > js_javascript スキルにおける 3 つのソート アルゴリズムの共有

js_javascript スキルにおける 3 つのソート アルゴリズムの共有

WBOY
リリース: 2016-05-16 17:50:46
オリジナル
1227 人が閲覧しました
コードをコピー コードは次のとおりです:

/**
* 値交換演算
* 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 メソッドは同じメソッドです。最後に、マージソート:



コードをコピー
コードは次のとおりです: //マージソート 関数 order(arr1, arr2){
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 を返す;
}


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