Selection Sort-Algorithmus mit Python Code Beispiel
โก Intelligente Zusammenfassung
Selection Sort ist ein In-Place-Vergleichsalgorithmus, der eine zufรคllige Liste aufsteigend sortiert, indem er wiederholt den kleinsten unsortierten Wert auswรคhlt und in den sortierten Bereich verschiebt. Diese Ressource erklรคrt โฆ Python Beispiel und seine Zeitkomplexitรคt.

Was ist Auswahlsortierung?
AUSWAHL SORTIEREN ist ein Vergleichssortierungsalgorithmus, der zum Sortieren einer zufรคlligen Liste von Elementen in aufsteigender Reihenfolge verwendet wird. Der Vergleich erfordert nicht viel zusรคtzlichen Platz. Es benรถtigt nur einen zusรคtzlichen Speicherplatz fรผr die temporรคre Variable.
Dies ist bekannt als an Ort und Stelle Sortierung. Die Auswahlsortierung hat eine Zeitkomplexitรคt von O(n2), wobei n die Gesamtzahl der Elemente in der Liste ist. Die Zeitkomplexitรคt misst die Anzahl der Iterationen, die zum Sortieren der Liste erforderlich sind. Die Liste ist in zwei Abschnitte unterteilt: Die erste Liste enthรคlt sortierte Elemente, wรคhrend die zweite Liste unsortierte Elemente enthรคlt.
Standardmรครig ist die sortierte Liste leer und die unsortierte Liste enthรคlt alle Elemente. Die unsortierte Liste wird dann nach dem Mindestwert durchsucht, der dann in die sortierte Liste eingefรผgt wird. Dieser Vorgang wird wiederholt, bis alle Werte verglichen und sortiert wurden.
Wie funktioniert die Auswahlsortierung?
Das erste Element in der unsortierten Partition wird mit allen Werten auf der rechten Seite verglichen, um zu prรผfen, ob es sich um den Mindestwert handelt. Wenn es nicht der Mindestwert ist, wird seine Position mit dem Mindestwert getauscht.
Beispiel
- Wenn beispielsweise der Index des Mindestwerts 3 ist, wird der Wert des Elements mit Index 3 auf Index 0 platziert, wรคhrend der Wert, der sich auf Index 0 befand, auf Index 3 platziert wird. Wenn das erste Element in der unsortierten Partition ist den Mindestwert, dann gibt es seine Positionen zurรผck.
- Das als Minimalwert ermittelte Element wird dann in die Partition auf der linken Seite, die sortierte Liste, verschoben.
- Die partitionierte Seite hat jetzt ein Element, wรคhrend die unpartitionierte Seite (n โ 1) Elemente hat, wobei n die Gesamtzahl der Elemente in der Liste ist. Dieser Vorgang wird immer wieder wiederholt, bis alle Elemente anhand ihrer Werte verglichen und sortiert wurden.
Problem Definition
Eine Liste mit Elementen in zufรคlliger Reihenfolge muss in aufsteigender Reihenfolge sortiert werden. Betrachten Sie die folgende Liste als Beispiel.
[21,6,9,33,3].
Die obige Liste sollte sortiert werden, um die folgenden Ergebnisse zu erzielen
[3,6,9,21,33].
Lรถsung (Algorithmus)
Schritt 1) Ermitteln Sie den Wert von n, der der Gesamtgrรถรe des Arrays entspricht
Schritt 2) Teilen Sie die Liste in sortierte und unsortierte Abschnitte auf. Der sortierte Abschnitt ist zunรคchst leer, wรคhrend der unsortierte Abschnitt die gesamte Liste enthรคlt
Schritt 3) Wรคhlen Sie den Mindestwert aus dem unpartitionierten Abschnitt aus und platzieren Sie ihn im sortierten Abschnitt.
Schritt 4) Wiederholen Sie den Vorgang (n โ 1) Mal, bis alle Elemente in der Liste sortiert sind.
Visuelle Darstellung
Die folgenden Abbildungen zeigen, wie der Auswahlsortieralgorithmus bei der Sortierung einer Liste mit fรผnf Elementen die Werte durchlรคuft.
Das folgende Bild zeigt die unsortierte Liste
Schritt 1)
Der erste Wert 21 wird mit den restlichen Werten verglichen, um zu prรผfen, ob es sich um den Minimalwert handelt.
3 ist der Mindestwert, daher sind die Positionen von 21 und 3 vertauscht. Die grรผn hinterlegten Werte stellen den sortierten Teil der Liste dar.
Schritt 2)
Der Wert 6, der das erste Element in der unsortierten Partition ist, wird mit den รผbrigen Werten verglichen, um herauszufinden, ob ein niedrigerer Wert vorhanden ist
Der Wert 6 ist der Minimalwert, er behรคlt also seine Position.
Schritt 3)
Das erste Element der unsortierten Liste mit dem Wert 9 wird mit den รผbrigen Werten verglichen, um zu prรผfen, ob es sich um den Mindestwert handelt.
Der Wert 9 ist der Mindestwert, sodass er seine Position in der sortierten Partition behรคlt.
Schritt 4)
Der Wert 33 wird mit den restlichen Werten verglichen.
Der Wert 21 ist kleiner als 33, daher werden die Positionen vertauscht, um die obige neue Liste zu erstellen.
Schritt 5)
Wir haben nur noch einen Wert in der unpartitionierten Liste. Daher ist es bereits sortiert.
Die endgรผltige Liste รคhnelt der im obigen Bild gezeigten.
Auswahl Sortieren Programm mit Python 3
Der folgende Code zeigt die Implementierung der Auswahlsortierung mit Python 3
def selectionSort( itemsList ): n = len( itemsList ) for i in range( n - 1 ): minValueIndex = i for j in range( i + 1, n ): if itemsList[j] < itemsList[minValueIndex] : minValueIndex = j if minValueIndex != i : temp = itemsList[i] itemsList[i] = itemsList[minValueIndex] itemsList[minValueIndex] = temp return itemsList el = [21,6,9,33,3] print(selectionSort(el))
Die Ausfรผhrung des obigen Codes erzeugt folgende Ergebnisse
[3, 6, 9, 21, 33]
Code Erlรคuterung
Die Erklรคrung fรผr den Code lautet wie folgt
Hier ist Code Erlรคuterung:
- Definiert eine Funktion namens โselectionSortโ.
- Ruft die Gesamtzahl der Elemente in der Liste ab. Wir benรถtigen dies, um die Anzahl der Durchgรคnge beim Wertevergleich zu bestimmen.
- รuรere Schleife. Verwendet die Schleife, um die Werte der Liste zu durchlaufen. Die Anzahl der Iterationen betrรคgt (n โ 1). Der Wert von n ist 5, also ergibt (5 โ 1) 4. Das bedeutet, dass die รคuรeren Iterationen viermal durchgefรผhrt werden. In jeder Iteration wird der Wert der Variablen i der Variablen minValueIndex zugewiesen
- Innere Schleife. Verwendet die Schleife, um den Wert ganz links mit den anderen Werten auf der rechten Seite zu vergleichen. Der Wert fรผr j beginnt jedoch nicht beim Index 0. Er beginnt bei (i + 1). Dadurch werden die Werte ausgeschlossen, die bereits sortiert wurden, sodass wir uns auf Elemente konzentrieren, die noch nicht sortiert wurden.
- Sucht den Mindestwert in der unsortierten Liste und platziert ihn an der richtigen Position
- Aktualisiert den Wert von minValueIndex beim Tausch.ping Bedingung ist wahr
- Vergleicht die Werte der Indexnummern minValueIndex und i, um festzustellen, ob sie ungleich sind.
- Der Wert ganz links wird in einer zeitlichen Variablen gespeichert
- Der niedrigere Wert von der rechten Seite nimmt die erste Position ein
- Der im Zeitwert gespeicherte Wert wird an der Position gespeichert, die zuvor der Minimalwert innehatte
- Gibt die sortierte Liste als Funktionsergebnis zurรผck
- Erstellt eine Liste el mit Zufallszahlen
- Drucken Sie die sortierte Liste nach dem Aufruf der Auswahlsortierfunktion und รผbergeben Sie dabei el als Parameter.
Zeitliche Komplexitรคt der Auswahlsortierung
Die Sortierkomplexitรคt wird verwendet, um die Anzahl der Ausfรผhrungszeiten auszudrรผcken, die zum Sortieren der Liste erforderlich sind. Die Implementierung besteht aus zwei Schleifen.
Die รคuรere Schleife, die die Werte einzeln aus der Liste auswรคhlt, wird n-mal ausgefรผhrt, wobei n die Gesamtzahl der Werte in der Liste ist.
Die innere Schleife, die den Wert aus der รคuรeren Schleife mit den restlichen Werten vergleicht, wird ebenfalls n-mal ausgefรผhrt, wobei n die Gesamtzahl der Elemente in der Liste ist.
Daher betrรคgt die Anzahl der Ausfรผhrungen (n * n), was auch als O(n) ausgedrรผckt werden kann2).
Die Auswahlsortierung hat drei Komplexitรคtskategorien, nรคmlich;
- Schlimmsten Fall โ hier erfolgt die Auflistung in absteigender Reihenfolge. Der Algorithmus fรผhrt die maximale Anzahl von Ausfรผhrungen durch, die als [Big-O] O(n) ausgedrรผckt wird2)
- bester Fall Dies tritt auf, wenn die bereitgestellte Liste bereits sortiert ist. Der Algorithmus fรผhrt die minimale Anzahl an Ausfรผhrungen durch, die als [Big-Omega] ฮฉ(n) ausgedrรผckt wird.2)
- Durchschnittlicher Fall Dies tritt auf, wenn die Liste in zufรคlliger Reihenfolge vorliegt. Die durchschnittliche Komplexitรคt wird als [Big-theta] ฮ(n) ausgedrรผckt.2)
Der Selection Sort hat eine Speicherkomplexitรคt von O(1), da er nur eine temporรคre Variable fรผr den Tausch benรถtigt.ping Werte.
Wann sollte die Auswahlsortierung verwendet werden?
Die Auswahlsortierung eignet sich am besten, wenn Sie Folgendes tun mรถchten:
- Sie mรผssen eine kleine Liste von Elementen in aufsteigender Reihenfolge sortieren
- Wenn die Kosten des Tauschsping Die Werte sind unbedeutend.
- Es wird auch verwendet, wenn Sie sicherstellen mรผssen, dass alle Werte in der Liste รผberprรผft wurden.
Vorteile der Auswahlsortierung
Die Vorteile der Auswahlsortierung sind folgende
- Es funktioniert sehr gut bei kleinen Listen
- Es handelt sich um einen In-Place-Algorithmus. Es benรถtigt nicht viel Platz zum Sortieren. Fรผr die Speicherung der zeitlichen Variablen ist nur ein zusรคtzlicher Platz erforderlich.
- Es funktioniert gut bei Artikeln, die bereits sortiert wurden.
Nachteile der Auswahlsortierung
Im Folgenden sind die Nachteile der Auswahlsortierung aufgefรผhrt.
- Bei der Arbeit an groรen Listen ist die Leistung schlecht.
- Die Anzahl der wรคhrend der Sortierung durchgefรผhrten Iterationen ist n-Quadrat, wobei n die Gesamtzahl der Elemente in der Liste ist.
- Andere Algorithmen, wie beispielsweise Quicksort, weisen im Vergleich zum Selectionsort eine bessere Leistung auf.












