⟨info/⟩

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.

Vergleichsbasiert(7)
Nicht-Vergleichsbasiert(2)
Hybrid(1)

Bubble Sort

Vergleichsbasiert
Ø: O(n²)
Speicher: O(1)
Stabil
In-Place

Vergleicht 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

Vergleichsbasiert
Ø: O(n²)
Speicher: O(1)
In-Place

Findet das Minimum im unsortierten Bereich und platziert es am Anfang — der sortierte Bereich wächst so pro Durchgang um ein Element.

Insertion Sort

Vergleichsbasiert
Ø: O(n²)
Speicher: O(1)
Stabil
In-Place

Baut 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

Vergleichsbasiert
Ø: O(n log n)
Speicher: O(n)
Stabil

Teilt 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

Vergleichsbasiert
Ø: O(n log n)
Speicher: O(log n)
In-Place

Wählt einen Pivot, partitioniert das Array in Elemente kleiner und größer als der Pivot und sortiert jede Partition rekursiv.

Heap Sort

Vergleichsbasiert
Ø: O(n log n)
Speicher: O(1)
In-Place

Baut einen Max-Heap auf und extrahiert wiederholt das Maximum — erzeugt so eine sortierte Sequenz direkt im Array.

Shell Sort

Vergleichsbasiert
Ø: O(n log² n)
Speicher: O(1)
In-Place

Eine 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-Vergleichsbasiert
Ø: O(n + k)
Speicher: O(k)
Stabil

Zä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-Vergleichsbasiert
Ø: O(nk)
Speicher: O(n + k)
Stabil

Sortiert Ganzzahlen stelle für stelle von der niedrigsten zur höchsten Stelle — nutzt an jeder Stelle einen stabilen Algorithmus (Counting Sort).

Tim Sort

Hybrid
Ø: O(n log n)
Speicher: O(n)
Stabil

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