JavaScript での選択の並べ替え
この記事では、選択ソートと、それが JavaScript ソース コードでどのように機能するかを説明します。 JavaScript で選択ソート アルゴリズムを使用して配列要素をソートする例を見ていきます。
JavaScript での選択の並べ替え
選択ソートは、プログラミング言語では単純なソート アルゴリズムと見なされます。 このソート アルゴリズムでは、リストは 2つの部分に分割されます。左側のソートされた部分と右側のソートされていない部分です。
最初の段階では、ソートされていないデータしかないため、ソートされた部分は空になります。
選択ソートでは、最小の要素がリストから選択され、最も左の要素と交換され、その最小の要素がソートされたリストの一部になります。 このプロセスは続きます。
選択ソートの時間計算量
このアルゴリズムは、平均的および最悪の場合の複雑さのため、大量のデータには適していません。 このアルゴリズムの時間計算量は O(n^2)
になります。ここで、n
はリスト項目の数です。
選択ソートのアルゴリズム
選択ソート アルゴリズムは、次の 5つのステップに分けることができます。
-
min
要素をインデックス 0 に設定します。 -
リスト内の最小要素を検索します。
-
min
要素の位置の値と交換します。 -
次の要素を指すように
min
要素をインクリメントします。 -
リストがソートされるまで、このプロセスを繰り返します。
以下の例では、JavaScript を使用して選択ソート アルゴリズムを実行します。 リスト項目に for
ループ反復を使用します。
let selectionSorting = function(array) {
for (var i = 0; i < array.length; i++) {
// set the min variable to the current iteration of i
var min = i;
for (var j = i + 1; j < array.length; j++) {
if (array[j] < array[min]) {
min = j;
}
}
var temp = array[i]; // for swapping
array[i] = array[min];
array[min] = temp;
}
return array;
};
let unsortedArray = [3, 8, 2, 10, 1, 5, 7, 4, 9, 6]
console.log('Unsorted list --> ' + unsortedArray);
let sortedArray = selectionSorting(unsortedArray)
console.log('Sorted list --> ' + sortedArray);
出力:
"Unsorted list --> 3,8,2,10,1,5,7,4,9,6"
"Sorted list --> 1,2,3,4,5,6,7,8,9,10"
上に示したように、配列をパラメーターとして受け取る let
型関数 selectionSorting()
を宣言しました。 その関数内で、渡された配列に対して for
ループを使用しました。
ループ本体の内部では、min
が残りの要素に別のループを使用したため、最初の要素を取得しました。 条件文 if()
を使用して、残りの要素を min
でチェックしました。
min
要素が残りのデータの最初の要素よりも大きい場合、min
変数を更新するだけで済みます。 次に、最初のループを閉じてスワッピングを実行する必要があり、同じプロセスが続きます。 配列がソートされると、関数は最終的にソートされた配列を返します。
ソートされていない配列を初期化し、引数として selectionSort()
関数に渡し、戻り値を sortedArray
変数に格納しました。 最後に、console.log()
メソッドを使用して結果をログに表示しました。
上記のソース コードをコピーして保存し、JavaScript コンパイラを使用して結果を確認します。