Welcher Sortieralgorithmus wird von der Array.Sort () -Methode von .NET verwendet?

8

Welcher Sortieralgorithmus wird von .NET Array.Sort() Methode verwendet?

    
Manoj Talreja 06.12.2009, 07:00
quelle

5 Antworten

4

Es verwendet den QuickSort -Algorithmus.

Quelle:

CMS 06.12.2009, 07:05
quelle
12

Array.Sort() wählt einen von drei Sortieralgorithmen, abhängig von der Größe der Eingabe:

  1. Wenn die Größe weniger als 16 Elemente ist, wird ein Einfügesortieralgorithmus verwendet.
  2. Wenn die Größe 2 * log^N überschreitet, wobei N der Bereich des Eingabe-Arrays ist, wird ein Heap-Sort-Algorithmus verwendet.
  3. Ansonsten verwendet es einen Quicksort-Algorithmus

Quelle: Array.Sort (Array) -Methode auf MSDN .

    
Badgujar Bhushankumar 06.06.2015 02:36
quelle
1

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.

    
user492238 19.02.2012 21:51
quelle
1

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.

    
Stanimir Yakimov 09.04.2015 07:42
quelle
-1

Tags und Links