JavaScript での選択の並べ替え

Muhammad Muzammil Hussain 2023年10月12日
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 コンパイラを使用して結果を確認します。

関連記事 - JavaScript Sort