Heim > Artikel > Web-Frontend > Implementieren Sie einen Sortieralgorithmus mit JS
Dieses Mal werde ich Ihnen die Verwendung von JS zur Implementierung des Sortieralgorithmus und die Verwendung von JS zur Implementierung des Sortieralgorithmus vorstellen. Was sind die Vorsichtsmaßnahmen Hier ist ein praktischer Fall, schauen wir uns das an .
Einige gängige Implementierungen von js-Sortieralgorithmen, nicht original, zur Aufzeichnung verwendet
Zeitkomplexität: O(n^2) ;
Am schnellsten: wenn die Daten in Vorwärtsreihenfolge vorliegen
Langsamste: wenn die Daten in umgekehrter Reihenfolge vorliegen
function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; i++) { // 相邻元素两两对比,元素交换 if (arr[j] > arr[j + 1]) { var temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } return arr; }
Zeitliche Komplexität: O (n^2)
Der stabilste Sortieralgorithmus
function selectionSort(arr) { var len = arr.length; var minIndex, temp; // 寻找最小的数,将索引保存 for (var i = 0; i < len - 1; i++) { minIndex = i; for (var j = i + 1; j < len; j++) { if (arr[j] < arr[minIndex]) { minIndex = j; } } temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } return arr; }
Einfügesortierung
Zeitkomplexität: O(n^2);
Pokersortierung
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; }
Hill-Sortierung
Zeitkomplexität: O(n log n);
function shellSort(arr) { var len = arr.length, temp, gap = 1; //动态定义间隔序列 while (gap < len / 3) { gap = gap * 3 + 1; } for (gap; gap > 0; gap = Math.floor(gap / 3)) { for (var i = gap; i < len; i++) { temp = arr[i]; for (var j = i - gap; j >= 0 && arr[j] > temp; j -= gap) { arr[j + gap] = arr[j]; } arr[j + gap] = temp; } } return arr; }
Merge-Sortierung
Zeitkomplexität: O(n log n) ) ;
function mergeSort(arr) { var len = arr.length; if (len < 2) { return arr; } var middle = Math.floor(len / 2), left = arr.slice(0, middle), right = arr.slice(middle); return merge(mergeSort(left), mergeSort(right)); function merge(left, right) { var result = []; while (left.length && right.length) { if (left[0] <= right[0]) { result.push(left.shift()); } else { result.push(right.shift()); } } while (left.length) result.push(left.shift()); while (right.length) result.push(right.shift()); return result; } }
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Strategiemuster von Javascript
Das obige ist der detaillierte Inhalt vonImplementieren Sie einen Sortieralgorithmus mit JS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!