Sortieralgorithmen-Visualisierer 📊
Vergleiche: 0
Array-Zugriffe: 0
Bubble Sort
Der einfachste Sortieralgorithmus. Er geht das Array wiederholt durch, vergleicht jeweils zwei benachbarte Elemente und vertauscht sie, falls sie in der falschen Reihenfolge sind. Dieser Vorgang wird wiederholt, bis keine Vertauschungen mehr nötig sind.
Zeitkomplexität: O(n²)
im Average und Worst Case. Sehr ineffizient fĂĽr grosse Datenmengen.
Selection Sort
Der Algorithmus teilt das Array in einen sortierten und einen unsortierten Teil. Er sucht das kleinste Element im unsortierten Teil und tauscht es mit dem ersten Element des unsortierten Teils. Dadurch wächst der sortierte Teil um ein Element.
Zeitkomplexität: O(n²)
in allen Fällen, da immer das gesamte restliche Array durchsucht werden muss.
Insertion Sort
Ähnlich wie Selection Sort, aber effizienter. Der Algorithmus geht durch das Array und fügt jedes Element an der korrekten Position im bereits sortierten Teil des Arrays ein. Dazu werden die grösseren Elemente nach rechts verschoben.
Zeitkomplexität: O(n²)
im Average und Worst Case. Bei bereits weitgehend sortierten Daten ist er jedoch sehr schnell (nahe O(n)
).
Merge Sort
Ein klassischer "Teile und Herrsche" (Divide and Conquer) Algorithmus. Das Array wird rekursiv in zwei Hälften geteilt, bis nur noch einzelne Elemente übrig sind. Anschliessend werden diese Teile wieder schrittweise zu einem sortierten Ganzen zusammengefügt ("merged").
Zeitkomplexität: O(n log n)
in allen Fällen. Sehr effizient und stabil, benötigt aber zusätzlichen Speicherplatz.
Quick Sort
Ebenfalls ein "Teile und Herrsche"-Algorithmus und oft der schnellste in der Praxis. Ein "Pivot"-Element wird gewählt. Alle kleineren Elemente werden vor das Pivot, alle grösseren dahinter verschoben. Dieser Vorgang wird für die beiden Teil-Arrays rekursiv wiederholt.
Zeitkomplexität: O(n log n)
im Average Case. Der Worst Case (bei schlecht gewähltem Pivot) ist O(n²)
, aber in der Praxis sehr selten.