„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Auswahlsortierungsalgorithmus

Auswahlsortierungsalgorithmus

Veröffentlicht am 07.11.2024
Durchsuche:899

Selection Sort Algorithm

Was ist Auswahlsortierung?

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.

Algorithmusschritte

  1. Beginnen Sie mit dem ersten Element im Array und gehen Sie davon aus, dass es das kleinste ist.
  2. Vergleichen Sie dieses Element mit den anderen Elementen im Array.
  3. Wenn Sie ein kleineres Element finden, tauschen Sie es mit dem ersten Element aus.
  4. Gehen Sie zum nächsten Element im Array und wiederholen Sie den Vorgang für die verbleibenden unsortierten Elemente.
  5. Setzen Sie diesen Vorgang fort, bis das gesamte Array sortiert ist.
#Suppose we have the following array:

arr = [64, 25, 12, 22, 11]

Durchgang 1:

  • Das kleinste Element zwischen Index 0 und dem Rest des Arrays ist 11.
  • Wir tauschen 64 gegen 11.

Array nach dem ersten Durchgang: [11, 25, 12, 22, 64]

Durchgang 2:

  • Konzentrieren Sie sich nun auf das Subarray, beginnend mit Index 1. Das kleinste Element zwischen 25, 12, 22, 64 ist 12.
  • Wir tauschen 25 gegen 12.

Array nach dem zweiten Durchgang: [11, 12, 25, 22, 64]

Durchgang 3:

  • Das kleinste Element zwischen 25, 22, 64 ist 22.
  • Wir tauschen 25 gegen 22.

Array nach dem dritten Durchgang: [11, 12, 22, 25, 64]

Durchgang 4:

  • Das Subarray enthält jetzt 25, 64. Da sie bereits in der richtigen Reihenfolge sind, ist kein Austausch erforderlich.

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

Vor- und Nachteile

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.

Freigabeerklärung Dieser Artikel wird unter: https://dev.to/shubham_kharche_05/selection-sort-algorithm-2g63?1 reproduziert.
Neuestes Tutorial Mehr>

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