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] < arr[min_index]: min_index = j # Swap the found minimum element with the first element of the unsorted part arr[i], arr[min_index] = arr[min_index], arr[i] # Example usage arr = [64, 25, 12, 22, 11] selection_sort(arr) print("Sorted array:", arr)
Sortiertes Array: [11, 12, 22, 25, 64]
Bester Fall: O(n²)
Durchschnittlicher Fall: O(n²)
Worst Case: O(n²)
Auch wenn 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.
Leicht gut bei kleinen Listen.
Benötigt keinen zusätzlichen Speicher, da das Array an Ort und Stelle sortiert wird.
Nachteile:
Ineffizient für große Datensätze aufgrund seiner O(n²) zeitlichen Komplexität.
Es handelt sich nicht um einen stabilen Sortieralgorithmus, was bedeutet, dass gleiche Elemente möglicherweise ihre Reihenfolge relativ zueinander nicht beibehalten.
Das obige ist der detaillierte Inhalt vonAuswahlsortierungsalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!