HOWTO · JavaScript

JavaScript での選択の並べ替え

この記事では、JavaScript の選択ソート アルゴリズムを学習します。 そして、このアルゴリズムを使用して、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 コンパイラを使用して結果を確認します。