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 unten 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.

Mit der angegebenen Liste ist diese Zahl 82. Vertausche 82 mit der Zahl im höchsten Index (dh 7).

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 das als "Pass" bezeichnet.

Beachten Sie, dass die Liste während des Sortiervorgangs eine sortierte Unterliste und eine unsortierte Unterliste verwaltet.

instagram viewer

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 Durchgang ist die höchste Zahl in der unsortierten Unterliste 51. Diese Nummer wird mit 42 ausgetauscht, um die folgende neue Listenreihenfolge zu erhalten:

[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. Diejenigen in Grün zeigen die sortierte Unterliste an.

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):
für x im Bereich (len (mylist) - 1, 0, -1):
max_idx = 0
für Posn im Bereich (1, x + 1):
if mylist[posn] > mylist[max_idx]:
max_idx = posn
temp = meineliste[x]
mylist[x] = mylist[max_idx]
mylist[max_idx] = temp

Java:

void selectionSort (int my_array[]){ 
für (intx = 0; x < my_array.length - 1; x++)
{
int-Index = x;
für (int y = x + 1; y < my_array.length; j++){
if (my_array[y] < my_array[index]){
Index = y; // niedrigsten Index finden
}
}
int temp = mein_array[index]; // temp ist ein temporärer Speicher
mein_array[index] = mein_array[x];
mein_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.

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.

Aktie
Email
Verwandte Themen
  • Programmierung
  • Programmierung
  • Algorithmen
Über den Autor
Jerome Davidson (17 Artikel veröffentlicht)

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 Davidson

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren