Welcher Sortieralgorithmus wird von .NET Array.Sort()
Methode verwendet?
Array.Sort()
wählt einen von drei Sortieralgorithmen, abhängig von der Größe der Eingabe:
2 * log^N
überschreitet, wobei N
der Bereich des Eingabe-Arrays ist, wird ein Heap-Sort-Algorithmus verwendet. Quelle: Array.Sort (Array) -Methode auf MSDN .
Schnelle Sortierung wie erwähnt. Aber es ist nicht gleich gut für alle Daten!
Mit reflector: Sortiert es in einer nativen DLL - & gt; für den häufigsten Fall von 1D-Arrays in aufsteigender Reihenfolge. Andere Fälle werden jedoch in verwaltetem Code sortiert - mit sehr wenigen Optimierungen. Daher ist ihre Geschwindigkeit normalerweise viel langsamer.
Eigentlich ist es nicht so einfach wie es scheint. Es sieht so aus, als ob .NET eine Reihe verschiedener Sortieralgorithmen implementiert, abhängig von der Eingabe und seiner Größe. Ich habe Array.Sort()
von CLR dekompiliert und es scheint, dass sie sowohl Heap, Insertion und Quicksort verwenden.