Heim > Artikel > Web-Frontend > Welchen Sortieralgorithmus verwendet JavaScripts „Array.sort()'?
Die JavaScript-Funktion Array#sort() ist ein vielseitiger Sortiermechanismus, der verschiedene Sortiervorgänge basierend auf bereitgestellten Argumenten unterstützt und Funktionen. Aber welche Engine verwendet die Vanilla-Sortierung, die ohne Parameter?
Wenn wir uns den WebKit-Quellcode (der von Chrome und Safari verwendet wird) genauer ansehen, stellen wir fest, dass die Wahl des Algorithmus von der Art der Sortierung abhängt array:
Numerische Arrays oder Arrays mit primitiven Typen: Diese Arrays werden mit der C-Funktion std::qsort sortiert, die normalerweise eine Variation von implementiert Quicksort (häufig Introsort).
Zusammenhängende Arrays nicht numerischer Typen: Diese Arrays werden in Zeichenfolgen konvertiert und mithilfe von Mergesort (wenn aus Stabilitätsgründen möglich) oder Qsort (andernfalls) sortiert.
Andere Typen (nicht zusammenhängende Arrays und assoziative Arrays): WebKit verwendet die Auswahlsortierung (min sort) oder sortiert in bestimmten Fällen einen AVL-Baum für diese Typen. Aufgrund der unklaren Dokumentation wäre es notwendig, die Codepfade zu verfolgen, um den spezifischen Algorithmus zu bestimmen, der für jeden Typ verwendet wird.
Bemerkenswerterweise enthält der Code einen Kommentar, der die Verwendung einer Basissortierung für eine schnellere Sortierung von stringifizierten Arrays vorschlägt, aber Dieser Kommentar verdeutlicht ein Missverständnis der Laufzeitkomplexität der Radix-Sortierung.
Das obige ist der detaillierte Inhalt vonWelchen Sortieralgorithmus verwendet JavaScripts „Array.sort()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!