Sortieralgorithmen
Interaktive Schritt-für-Schritt-Visualisierungen und saubere TypeScript-Implementierungen von 10 klassischen Sortieralgorithmen — von O(n²)-Grundlagen bis hin zu linearen Nicht-Vergleichssortiervarianten.
Bubble Sort
VergleichsbasiertVergleicht benachbarte Elemente wiederholt und tauscht sie bei falscher Reihenfolge — das größte unsortierte Element „blubbert" dabei pro Durchgang an seine endgültige Position.
Selection Sort
VergleichsbasiertFindet das Minimum im unsortierten Bereich und platziert es am Anfang — der sortierte Bereich wächst so pro Durchgang um ein Element.
Insertion Sort
VergleichsbasiertBaut das sortierte Array Element für Element auf, indem jedes neue Element an der richtigen Position unter den bereits sortierten Elementen eingefügt wird.
Merge Sort
VergleichsbasiertTeilt das Array rekursiv in Hälften, bis einzelne Elemente übrig sind, und fügt sortierte Hälften wieder zusammen — garantiert O(n log n).
Quick Sort
VergleichsbasiertWählt einen Pivot, partitioniert das Array in Elemente kleiner und größer als der Pivot und sortiert jede Partition rekursiv.
Heap Sort
VergleichsbasiertBaut einen Max-Heap auf und extrahiert wiederholt das Maximum — erzeugt so eine sortierte Sequenz direkt im Array.
Shell Sort
VergleichsbasiertEine verbesserte Variante des Insertion Sort, die zuerst weit auseinanderliegende Elemente sortiert und den Abstand schrittweise reduziert bis zum finalen Insertion-Sort-Durchgang.
Counting Sort
Nicht-VergleichsbasiertZählt das Vorkommen jedes Wertes und rekonstruiert daraus das sortierte Array — lineare Laufzeit, aber auf Integer-Schlüssel in einem begrenzten Bereich beschränkt.
Radix Sort
Nicht-VergleichsbasiertSortiert Ganzzahlen stelle für stelle von der niedrigsten zur höchsten Stelle — nutzt an jeder Stelle einen stabilen Algorithmus (Counting Sort).
Tim Sort
HybridEin Hybrid aus Merge Sort und Insertion Sort, der natürliche Runs in realen Daten ausnutzt — der Algorithmus, der in Python und Java zum Einsatz kommt.