「クイックソート」のアイデアは非常にシンプルであり、ソートプロセス全体には3つのステップしか必要ありません。
(1)データセットで、「ベース」(ピボット)として要素を選択します。
(2)「参照」よりも小さいすべての要素は、「参照」の左側に移動されます。 「参照」よりも大きいすべての要素は、「参照」の右側に移動されます。
(3)「ベースライン」の左右にある2つのサブセットについて、すべてのサブセットに1つの要素が残るまで、最初と2番目のステップを繰り返します。
たとえば、データセット{85、24、63、45、17、31、96、50}があります。それを並べ替える方法は?
最初のステップで、「ベース」として中間要素45を選択します。 (参照値は任意に選択できますが、中間値を選択する方が簡単です。)
2番目のステップは、各要素を「ベース」と比較して2つのサブセットを形成することです。1つは「45未満」、もう1つは「45以下」です。
3番目のステップは、すべてのサブセットに1つの要素が残っているまで、2つのサブセットの1番目と2番目のステップを繰り返すことです。
以下は、上記のアルゴリズムをJavaScript言語で実装するためのオンライン情報(こちらおよびこちら)への参照です。
まず、パラメーターが配列であるクイックソート関数を定義します。
var quicksort = function(arr){};次に、配列内の要素の数を確認し、1以下の場合、返されます。
var QuickSort = function(arr){if(arr.length <= 1){return arr; }};次に、「ピボット」を選択して元の配列から分離し、2つの空の配列を定義して、1つの左と1つの右側の2つのサブセットを保存します。
var QuickSort = function(arr){if(arr.length <= 1){return arr; } var pivotindex = math.floor(arr.length / 2); var pivot = arr.splice(pivotindex、1)[0]; var left = []; var right = [];};次に、アレイを通過し始め、左側のサブセットに「ベース」よりも小さい要素を、右側のサブセットにベースよりも大きい要素を入れます。
var QuickSort = function(arr){if(arr.length <= 1){return arr; } var pivotindex = math.floor(arr.length / 2); var pivot = arr.splice(pivotindex、1)[0]; var left = []; var right = []; for(var i = 0; i <arr.length; i ++){if(arr [i] <pivot){left.push(arr [i]); } else {right.push(arr [i]); }}};最後に、再帰を使用してこのプロセスを継続的に繰り返して、ソートされた配列を取得します。
var QuickSort = function(arr){if(arr.length <= 1){return arr; } var pivotindex = math.floor(arr.length / 2); var pivot = arr.splice(pivotindex、1)[0]; var left = []; var right = []; for(var i = 0; i <arr.length; i ++){if(arr [i] <pivot){left.push(arr [i]); } else {right.push(arr [i]); }} quicksort(左).concat([pivot]、quicksort(右));};使用するときは、QuickSort()を呼び出してください。
上記は、編集者が紹介したJavaScriptアルゴリズムシリーズのQuickSortアルゴリズムの例の詳細な説明です。それがあなたに役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!