ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript クイックソート関数 code_javascript スキル

JavaScript クイックソート関数 code_javascript スキル

WBOY
リリース: 2016-05-16 17:52:58
オリジナル
1091 人が閲覧しました

コア コード:

コードをコピー コードは次のとおりです。

function QuickSort(arr){
//配列に数値が 1 つしかない場合は、それを直接返します。
if(arr.length<1){
return arr;
}
//浮動小数点数の場合は切り捨てます。
var centerIndex = Math.floor(arr.length/2)
// 中央のインデックス値に基づいてこの数値を見つけます。 number;
var centerNum = arr.splice(centerIndex,1);
//左側の数値を格納します
var arrLeft = []//右側の数値を格納します
var arrRight = [];
for (i=0;iif(arr[i]arrLeft.push(arr[i] )
}else if(arr[i ]>centerNum){
arrRight.push(arr[i])
}
}
return QuickSort(arrLeft).concat(centerNum,クイックソート(arrRight));
var arrSort = [33,18,2,40,16,63,27]; (arr1);



主な原則: クイックソートの原則: 参照点を見つけ、2 つの配列を作成して別々に保存し、再帰
参照点:配列の中央の数値を見つけます。

2 つの配列を作成し、それらを別々に保存します。この参照点を使用して、その左と右の値を 2 つの定義された新しい配列にそれぞれ保存します。再帰: 関数内で自身を呼び出します。

ここで要約するのは、再帰を使用する場合です。
1. 判定が必要で、それ以外の場合は無限ループになります。 2. 内部的に自分自身を呼び出す場合、渡されるパラメータは内部で定義された変数です。この変数は、初めて渡されるパラメータに関連しています。
3. 同じ作業を実行するには、再帰を使用することを検討できます。
初めて関数を実行する場合 変数の状況:ループ内の判定条件により真ん中の数値が40、40未満の場合はarrLeftに格納され、40より大きい場合はarrLeftに格納されます。 、arrRightに保存されます。以下に示すように





関数
が 2 回目に呼び出されたとき、実行により QuickSort(arrLeft).concat(centerNum,quickSort(arrRight)) が返されます。 ) 関数が呼び出され、渡されるパラメータは [33,18,2,16,27] です。
中央の数字は 2 で、2 より小さい数字は左側の arrLeft に配置され、2 より大きい数字はは右arrRightに配置されます

最後に、quickSort(arrRight) を呼び出します。

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