Worum geht es?

Die O-Notation beschreibt, wie der Rechenaufwand eines Programms mit der Eingabegröße n wächst. Um sie zu bestimmen, zählen wir zuerst, wie viele Anweisungen ein Programm tatsächlich ausführt – und vereinfachen diese Zahl danach zu einer Wachstumsklasse.

So zählen wir die ausgeführten Zeilen

Vom Zählen zur O-Notation

Wenn die Gesamtzahl der Anweisungen feststeht, vereinfachen wir in zwei Schritten:

Merksatz: Erst genau zählen (wie oft läuft jede Körperzeile?), dann grob vereinfachen (Konstanten und kleine Terme weg). Unten siehst du beide Schritte live.

Zeilen zählen

Wähle ein Programm und schiebe n. Graue Zeilen sind Kopfzeilen und zählen nicht mit. Die blaue Markierung zeigt, wie oft jede Körperzeile bei diesem n ausgeführt wird.

Ausgeführte Anweisungen
Allgemein:
Wächst wie
Aufwand bei diesem n
Dein Punktestand 0 / 0

Multiple-Choice-Übungen

Zähle bei jedem Programm zuerst selbst die ausgeführten Anweisungen (Kopfzeilen weglassen!) und wähle dann die richtige Antwort. Nach dem Klick erscheint die Erklärung.

Spickzettel: die wichtigsten Klassen

KlasseNameTypisches MusterAufwand bei n = 1000
O(1)konstantfeste Anzahl Anweisungen, keine Schleife über n1
O(log n)logarithmischn wird jede Runde halbiert (while n > 1)≈ 10
O(n)lineareine Schleife über n (auch mehrere nacheinander)1000
O(n log n)fast linearHalbieren plus Durchlauf, z. B. Merge Sort≈ 10 000
O(n²)quadratischzwei verschachtelte Schleifen über n1 000 000
O(2ⁿ)exponentielljeder Schritt verdoppelt die Möglichkeitenastronomisch
Lust, die Programme selbst laufen zu lassen? Tippe sie in WebTigerPython ein und baue einen Zähler ein, der bei jeder ausgeführten Körperzeile um 1 erhöht wird – so prüfst du deine Handzählung nach.