Einführung
In diesem Lab werden wir das Konzept des stabilen Sortierens in JavaScript erkunden. Stables Sortieren ist eine Technik, die die Reihenfolge von Elementen in einem Array beibehält, wenn ihre Werte gleich sind. Wir werden eine Funktion verwenden, die die Methoden Array.prototype.map() und Array.prototype.sort() nutzt, um das stabile Sortieren eines Arrays zu implementieren.
Stables Sortieren
Um das stabile Sortieren eines Arrays durchzuführen und die ursprünglichen Indizes von Elementen mit gleichen Werten beizubehalten, folgen Sie diesen Schritten:
- Öffnen Sie das Terminal/SSH und geben Sie
nodeein, um mit der Codeausführung zu beginnen. - Verwenden Sie
Array.prototype.map(), um jedes Element des Eingabearrays mit seinem entsprechenden Index zu verknüpfen. - Verwenden Sie
Array.prototype.sort()zusammen mit einercompare-Funktion, um die Liste zu sortieren, wobei die ursprüngliche Reihenfolge beibehalten wird, wenn die verglichenen Elemente gleich sind. - Verwenden Sie
Array.prototype.map()erneut, um die Arrayelemente zurück in ihre ursprüngliche Form zu konvertieren. - Das ursprüngliche Array wird nicht verändert, sondern stattdessen ein neues Array zurückgegeben.
Hier ist eine Implementierung der stableSort-Funktion in JavaScript:
const stableSort = (arr, compare) =>
arr
.map((item, index) => ({ item, index }))
.sort((a, b) => compare(a.item, b.item) || a.index - b.index)
.map(({ item }) => item);
Sie können die stableSort-Funktion mit einem Array und einer compare-Funktion aufrufen, um ein neues Array mit den sortierten Elementen zu erhalten, wie unten gezeigt:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const stable = stableSort(arr, () => 0); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Zusammenfassung
Herzlichen Glückwunsch! Sie haben das Lab zu stabilem Sortieren abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.