Der Selection Sort-Algorithmus unterteilt das Array in zwei Teile: den sortierten Teil und den unsortierten Teil. Der sortierte Teil ist zunächst leer und der unsortierte Teil enthält alle Elemente. Der Algorithmus funktioniert, indem er das kleinste (oder größte, abhängig von der Sortierreihenfolge) Element aus dem unsortierten Teil findet und es durch das erste Element des unsortierten Teils austauscht. Dieser Vorgang wird fortgesetzt, bis das gesamte Array sortiert ist.
#Suppose we have the following array: arr = [64, 25, 12, 22, 11]
Array nach dem ersten Durchgang: [11, 25, 12, 22, 64]
Array nach dem zweiten Durchgang: [11, 12, 25, 22, 64]
Array nach dem dritten Durchgang: [11, 12, 22, 25, 64]
Endgültiges sortiertes Array: [11, 12, 22, 25, 64]
def selection_sort(arr): # Traverse through all array elements for i in range(len(arr)): # Find the minimum element in the remaining unsorted part min_index = i for j in range(i 1, len(arr)): if arr[j]Sortiertes Array: [11, 12, 22, 25, 64]
Zeitliche Komplexität der Auswahlsortierung:
Bester Fall: O(n²)
Durchschnittlicher Fall: O(n²)
Worst Case: O(n²)
Obwohl die Auswahlsortierung bei kleinen Datensätzen eine gute Leistung erbringt, ist sie für größere Arrays nicht ideal, da ihre zeitliche Komplexität O(n²) beträgt. Es ist jedoch einfach zu implementieren und kann in Fällen nützlich sein, in denen der Speicher ein Problem darstellt, da die Auswahlsortierung direkt erfolgt (kein zusätzlicher Speicher erforderlich).
Vorteile:
Einfach zu verstehen und umzusetzen.
Leistung bei kleinen Listen gut.
Benötigt keinen zusätzlichen Speicher, da das Array direkt sortiert wird.
Nachteile:
Ineffizient für große Datensätze aufgrund seiner O(n²) Zeitkomplexität.
Es handelt sich nicht um einen stabilen Sortieralgorithmus, was bedeutet, dass gleiche Elemente möglicherweise ihre Reihenfolge relativ zueinander nicht beibehalten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3