Warum Sortieren? Grundlagen & Komplexität

Lernabschnitt

Warum Sortieren? Grundlagen & Komplexität

Sortieren ist eines der fundamentalsten Probleme der Informatik — und der perfekte Einstieg, um Laufzeitkomplexität zu verstehen.

Quelle: Demo-Inhalt (kein echtes Vorlesungsmaterial)

Das Sortierproblem

Gegeben ist eine Folge von nn Elementen. Gesucht ist eine Anordnung, in der die Elemente aufsteigend (oder absteigend) sortiert sind.

Vergleichsbasierte Verfahren dürfen nur eine Operation nutzen: den Vergleich zweier Elemente. Daraus folgt eine wichtige untere Schranke: Kein vergleichsbasiertes Verfahren kann schneller sein als O(nlogn)O(n \log n) im Worst Case.

Bubble Sort

Bubble Sort läuft wiederholt durch die Liste und vertauscht benachbarte Elemente, wenn sie in der falschen Reihenfolge stehen. Große Elemente „blubbern" so ans Ende.

FallLaufzeit
Best Case (schon sortiert)O(n)O(n)
Average CaseO(n2)O(n^2)
Worst Case (umgekehrt sortiert)O(n2)O(n^2)

Die quadratische Laufzeit entsteht, weil im schlimmsten Fall jeder der nn Durchläufe bis zu n1n-1 Vergleiche braucht:

i=1n1i=n(n1)2O(n2)\sum_{i=1}^{n-1} i = \frac{n(n-1)}{2} \in O(n^2)

Merksatz

Bubble Sort ist stabil und in-place, aber mit O(n2)O(n^2) für große Datenmengen ungeeignet.