JavaScript は、Web 開発、ゲーム開発、モバイル開発などの分野で多くの機能を実装できる、広く使用されているプログラミング言語です。実際の開発プロセスでは、並べ替えアルゴリズムはプログラミングでよく発生する問題の 1 つです。 JavaScript を使用して一連の数値をサイズ順に並べ替えるにはどうすればよいですか?
JavaScript は、この問題を解決するためにさまざまな並べ替えアルゴリズムを提供しています。この記事では、一般的に使用されるいくつかの並べ替えアルゴリズムを紹介します。
バブル ソート
バブル ソートは単純な並べ替えアルゴリズムです。その原理は、2 つの隣接する数値を比較することです。前の数値が後の数値より大きい場合、2 つの数値を入れ替えてこれを繰り返します。すべての数値がサイズ順になるまで処理します。
次は、バブル ソートの JavaScript 実装です:
function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len - 1; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } return arr; } var arr = [5, 3, 8, 4, 2]; console.log(bubbleSort(arr)); // [2, 3, 4, 5, 8]
選択ソート
選択ソートは、もう 1 つの単純なソート アルゴリズムです。その原理は、配列内の配列をソートすることです。最小の要素を見つけて最初に配置し、次に残りの要素の中から最小の要素を見つけて、すべての要素が配置されるまでソートされた要素の後に順番に配置します。
次は、選択ソートの JavaScript 実装です:
function selectionSort(arr) { var len = arr.length; for (var i = 0; i < len - 1; i++) { var minIndex = i; for (var j = i + 1; j < len; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } var temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } return arr; } var arr = [5, 3, 8, 4, 2]; console.log(selectionSort(arr)); // [2, 3, 4, 5, 8]
挿入ソート
挿入ソートは、シンプルで効率的なソート アルゴリズムです。その原理は、対象となる要素を挿入することです。すでにソート済み ソートされた要素内の適切な位置。挿入ソートには直接挿入ソートとヒルソートの2種類があり、ここでは直接挿入ソートの実装について紹介します。
次は、挿入ソートの JavaScript 実装です:
function insertionSort(arr) { var len = arr.length; var preIndex, current; for (var i = 1; i < len; i++) { preIndex = i - 1; current = arr[i]; while (preIndex >= 0 && arr[preIndex] > current) { arr[preIndex + 1] = arr[preIndex]; preIndex--; } arr[preIndex + 1] = current; } return arr; } var arr = [5, 3, 8, 4, 2]; console.log(insertionSort(arr)); // [2, 3, 4, 5, 8]
クイック ソート
クイック ソートは、最も一般的に使用されるソート アルゴリズムの 1 つであり、その原理は要素をソートすることです。参照要素に合わせて、左側が基本要素より小さい部分、右側が基本要素より大きい部分に分割し、左右の部分を再帰的にソートします。
以下は、クイック ソートの JavaScript 実装です:
function quickSort(arr, left, right) { var len = arr.length, partitionIndex; left = typeof left != "number" ? 0 : left; right = typeof right != "number" ? len - 1 : right; if (left < right) { partitionIndex = partition(arr, left, right); quickSort(arr, left, partitionIndex - 1); quickSort(arr, partitionIndex + 1, right); } return arr; } function partition(arr, left, right) { var pivot = left, index = pivot + 1; for (var i = index; i <= right; i++) { if (arr[i] < arr[pivot]) { swap(arr, i, index); index++; } } swap(arr, pivot, index - 1); return index - 1; } function swap(arr, i, j) { var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } var arr = [5, 3, 8, 4, 2]; console.log(quickSort(arr)); // [2, 3, 4, 5, 8]
概要
上記は、一般的に使用されるいくつかの JavaScript ソート アルゴリズム (バブル ソート、選択ソート、挿入) です。ソートとクイックソート。実際の開発プロセスでは、最適な効率の結果を達成するために、さまざまなシナリオに応じてさまざまな並べ替えアルゴリズムを選択できます。
以上がJavaScriptで一連の数値をサイズ順に並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。