Mit buchstäblich Dutzende von Sortier- Algorithmen zur Verfügung , zu bestimmen, welche am besten mit Ihrem System funktioniert auf Vergleichen von mehreren Faktoren ab, wie z. B. die Größe der Liste ab, die Geschwindigkeit oder die Komplexität des Algorithmus , und ob Sie verwenden ein Schlüssel zu sortieren. Komplexität
Die Komplexität eines Sortieralgorithmus wird von O (n) , oder der "Ordnung der n ", wobei n die Größe der Liste gemessen. Er misst , wie viele übergibt sie an die Liste zu sortieren nimmt und seine besten , schlechtesten und durchschnittlichen Zeit, dies zu tun . Gemeinsame Komplexität umfassen N als besten Fall für Sorten wie Insertion Sort und Schale sortieren , n log n , (unter Verwendung eines Logarithmus zur Basis 2 , nicht eine Base -10) , die die Komplexität für Mergesort und Heapsort und n ² , die langsamer ist als beim ersten Mal und ist die Geschwindigkeit für die Auswahl sortieren
Liste Zustand
Manchmal werden Sie wissen, wie die unsortierten Elemente in einer Liste organisiert sind. : Zum Beispiel , ob sie fast sortiert , in umgekehrter Reihenfolge , oder eine Liste mit wenigen Unikate . Dieses Wissen hilft Ihnen, wählen Sie einen effizienten Algorithmus zu sortieren . Zum Beispiel mit Insertion Sort , um eine Liste in umgekehrter Reihenfolge zu sortieren hat eine Laufzeit von n ², während Heap-Sort kann es schneller zu tun , in n log n Zeit . Auf einer Liste , die fast sortiert ist, ist Insertion Sort schneller als Heap-Sort . Wenn die Liste eine vollständig randomisierten Satz von Daten enthält , wählen Sie einen Algorithmus mit einer durchschnittlichen Fall Komplexität n log n Laufzeit, wie Heap-Sort , Quicksort oder Mergesort .
Liste Größe
Einige Algorithmen sind schwieriger zu bedienen als andere, so dass die Anzahl der Elemente in einer Liste und wie oft Sie müssen klären kann helfen, den Algorithmus Sie wählen . Sortiert wie Insertion Sort sind schnell und funktionieren gut bei der Sortierung kleinere Listen und sind einfach zu implementieren , aber sie sind langsam mit größeren Listen . Sortiert die eine Teile-und -Herrsche- Algorithmus wie Quicksort und Mergesort verwenden sind schwieriger zu implementieren, aber sie sortieren größere Listen schneller in durchschnittlichen Fällen .
Stabilität
Algorithm Stabilität beschreibt, ob die Art die Reihenfolge der Elemente auf einer Sortieranlage Schlüssel basiert unterhält . Zum Beispiel , indem das erste Zeichen als Schlüssel für eine Liste, " John ", " Steve " und " Jim hat " in dieser Reihenfolge , eine stabile Algorithmus sortiert die Liste zu " John ", " Jim " und " Steve ", während ein instabiler Algorithmus kann oder nicht sortieren " Jim " vor " John . " Merge sort sind Insertion Sort und Bubble-Sort alle stabilen Algorithmen , während Shell Art , Auswahl sortieren und Heap-Sort nicht.