Heim > Artikel > Web-Frontend > Implementieren Sie die Einfügungssortierung mithilfe von JavaScript, um ein Array von Zahlen in aufsteigender Reihenfolge zu sortieren
Die Kunst der Array-Sortierung ist in der Welt der Programmierung von entscheidender Bedeutung, da sie eine effiziente Organisation und Bearbeitung von Daten ermöglicht. Wenn es darum geht, einen zuverlässigen Sortieralgorithmus zu implementieren, ist die Einfügungssortierung eine vielseitige und effiziente Wahl. In diesem Artikel tauchen wir in die komplexe Welt von JavaScript ein und untersuchen den Prozess der Implementierung einer Einfügungssortierung, um ein Array von Zahlen in aufsteigender Reihenfolge zu sortieren. Durch das Verständnis der zugrunde liegenden Mechanismen des Algorithmus und die Nutzung der Leistungsfähigkeit von JavaScript können Entwickler das Potenzial zum effizienten Sortieren und Organisieren numerischer Daten freisetzen und so die Anwendungsleistung und Benutzerfreundlichkeit verbessern.
Die aktuelle Herausforderung besteht darin, einen Einfügungssortierungsalgorithmus mithilfe von JavaScript zu implementieren, um ein Array von Zahlen in aufsteigender Reihenfolge zu sortieren. Das Hauptziel besteht darin, ein Programm zu entwerfen, das die Elemente eines bestimmten Arrays intelligent neu anordnen kann und dabei sicherstellt, dass jedes nachfolgende Element basierend auf seinem numerischen Wert an der richtigen Position relativ zum vorherigen Element platziert wird. Nehmen wir zum Beispiel an, wir stellen ein Array
bereit[9, 2, 7, 4, 1]
Nach der Ausführung des Einfügungssortierungsalgorithmus ist das erwartete Ergebnis ein Array in aufsteigender Reihenfolge, z. B.
[1, 2, 4, 7, 9]
In diesem Artikel werden wir verschiedene Möglichkeiten zur Lösung der oben genannten Probleme in JavaScript sehen -
Grundlegende Einfügungssortierung
Binäre Einfügungssortierung
Rekursive Einfügungssortierung
Der grundlegende Einfügungssortierungsalgorithmus verwaltet ein sortiertes Unterarray innerhalb des Arrays. Beginnend mit dem zweiten Element wird jedes Element mit dem vorherigen Element im Subarray verglichen und nach rechts verschoben, wenn es kleiner ist. Dieser Vorgang wird fortgesetzt, bis die richtige Position gefunden ist und das Element eingefügt wird. Dieser Vorgang wird für alle Elemente wiederholt, sodass ein vollständig sortiertes Array entsteht.
function insertionSort(arr) { for (let i = 1; i < arr.length; i++) { let current = arr[i]; let j = i - 1; while (j >= 0 && arr[j] > current) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = current; } return arr; } const arr = [9, 2, 7, 4, 1]; console.log(insertionSort(arr));Ausgabe
[ 1, 2, 4, 7, 9 ]Methode 2: Binäre Einfügungssortierung
Beispiel
function binaryInsertionSort(arr) { for (let i = 1; i < arr.length; i++) { let current = arr[i]; let left = 0; let right = i - 1; while (left <= right) { let mid = Math.floor((left + right) / 2); if (current < arr[mid]) { right = mid - 1; } else { left = mid + 1; } } for (let j = i - 1; j >= left; j--) { arr[j + 1] = arr[j]; } arr[left] = current; } return arr; } const arr = [9, 2, 7, 4, 1]; console.log(binaryInsertionSort(arr));Ausgabe
[ 1, 2, 4, 7, 9 ]Methode 3: Rekursive Einfügungssortierung
Beispiel
function recursiveInsertionSort(arr, n = arr.length) { if (n <= 1) return arr; recursiveInsertionSort(arr, n - 1); let last = arr[n - 1]; let j = n - 2; while (j >= 0 && arr[j] > last) { arr[j + 1] = arr[j]; j--; } arr[j + 1] = last; return arr; } const arr = [9, 2, 7, 4, 1]; console.log(recursiveInsertionSort(arr));Ausgabe
[ 1, 2, 4, 7, 9 ]
最终,使用 JavaScript 实现插入排序算法以升序排列数字数组,对于寻求熟练排序方法的开发人员来说是一个精明的选择。通过迭代地将元素放置在适当的位置,该算法展示了一种组织数值数据的敏锐方法。虽然插入排序可能不像其他排序技术那样广受好评,但它的效率和简单性使其在某些情况下成为非常宝贵的工具。在 JavaScript 中使用此算法使开发人员能够在其编码库中使用鲜为人知但功能强大的工具,从而生成精简且有序的数组。总之,利用 JavaScript 中插入排序算法的强大功能,对于那些在数组排序中寻求精确性和优雅性的人来说,是一种不切实际的努力。
Das obige ist der detaillierte Inhalt vonImplementieren Sie die Einfügungssortierung mithilfe von JavaScript, um ein Array von Zahlen in aufsteigender Reihenfolge zu sortieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!