Die Auswahlsortierung ist eine Sortiertechnik, die ein Listenelement auswählt und dann seinen Platz mit einem anderen vertauscht. Es wählt das größte Element aus und tauscht es dann mit einem Element im höchsten Index der Liste aus.
Der Algorithmus macht dies wiederholt, bis die Liste sortiert ist. Wenn Sie sich nicht ganz sicher sind, wie die Auswahlsortierung funktioniert, sind Sie hier richtig. Wir werden es im Folgenden genauer erklären und Ihnen ein Beispiel zeigen.
Auswahl sortieren: Ein genauerer Blick
Angenommen, Sie haben die Liste: [39, 82, 2, 51, 30, 42, 7]. Um die Liste mit Auswahlsortierung zu sortieren, müssten Sie zuerst die höchste Zahl darin finden.
In der gegebenen Liste ist diese Zahl 82. Tausche 82 mit der Zahl im höchsten Index (dh 7) aus.
Nach dem ersten Durchlauf lautet die neue Listenreihenfolge: [39, 7, 2, 51, 30, 42, 82]. Jedes Mal, wenn der Algorithmus die gesamte Liste durchläuft, wird dies als „Pass“ bezeichnet.
Beachten Sie, dass die Liste während des Sortiervorgangs eine sortierte Unterliste und eine unsortierte Unterliste verwaltet.
Windows konnte die Formatierung der Micro-SD-Karte nicht abschließen
Verwandt: Was ist Big-O-Notation?
Die ursprüngliche Liste beginnt mit einer sortierten Liste von null Elementen und einer unsortierten Liste aller Elemente. Dann hat es nach dem ersten Durchgang eine sortierte Liste mit nur der Nummer 82.
Beim zweiten Durchlauf ist die höchste Nummer in der unsortierten Unterliste 51. Diese Nummer wird mit 42 ausgetauscht, um die neue Listenreihenfolge unten anzugeben:
So legen Sie das Standard-Google-Konto fest
[39, 7, 2, 42, 30, 51, 82].
Der Vorgang wird wiederholt, bis die gesamte Liste sortiert ist. Die folgende Abbildung fasst den gesamten Prozess zusammen:
Die Zahlen in fettem Schwarz zeigen den höchsten Listenwert zu diesem Zeitpunkt. Die grün markierten zeigen die sortierte Unterliste.
Algorithmusanalyse
Um die Komplexität (mit Big-O-Notation) dieses Algorithmus zu ermitteln, gehen Sie wie folgt vor:
Beim ersten Durchlauf werden (n-1) Vergleiche durchgeführt. Beim zweiten Durchgang (n-2). Beim dritten Durchgang (n-3) und so weiter bis zum (n-1)ten Durchgang, der nur einen Vergleich macht.
Die folgenden Vergleiche zusammenfassend ergibt:
(n-1)+ (n-1)+ (n-1)+...+1 = ((n-1)n)/2.
Daher ist die Auswahlsortierung O(n2).
Codeimplementierung
Der Code zeigt Funktionen, die Sie zum Durchführen einer Auswahlsortierung mit Python und Java verwenden können.
Python:
def selectionSort(mylist):
for x in range(len(mylist) - 1, 0, -1):
max_idx = 0
for posn in range(1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = mylist[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp
Java:
void selectionSort(int my_array[]){
for (int x = 0; x {
int index = x;
for (int y = x + 1; y if (my_array[y] index = y; // find lowest index
}
}
int temp = my_array[index]; // temp is a temporary storage
my_array[index] = my_array[x];
my_array[x] = temp;
}}
Wechseln von Auswahlsortierung zu Zusammenführungssortierung
Wie die obige Algorithmusanalyse gezeigt hat, ist der Auswahlsortieralgorithmus O(n2). Es hat eine exponentielle Komplexität und ist daher für sehr große Datensätze ineffizient.
linker Mausklick funktioniert manchmal nicht
Ein viel besser zu verwendender Algorithmus wäre Merge-Sort mit einer Komplexität von O(nlogn). Und jetzt wissen Sie, wie die Auswahlsortierung funktioniert. Als nächstes auf Ihrer Studienliste für Sortieralgorithmen sollte die Zusammenführungssortierung stehen.
Teilen Teilen Tweet Email Die 8 besten Websites zum kostenlosen Herunterladen von HörbüchernHörbücher sind eine großartige Quelle der Unterhaltung und viel leichter zu verdauen. Hier sind die acht besten Websites, auf denen Sie sie kostenlos herunterladen können.
Weiter lesen Verwandte Themen- Programmierung
- Programmierung
- Algorithmen
Jerome ist Staff Writer bei MakeUseOf. Er behandelt Artikel über Programmierung und Linux. Er ist auch ein Krypto-Enthusiast und behält die Krypto-Industrie immer im Auge.
Mehr von Jerome DavidsonAbonniere unseren Newsletter
Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!
Klicken Sie hier, um zu abonnieren