Informatik
Wie schnell ist ein Programm?
Schritte zählen statt Sekunden messen: warum manche Programme mit großen Daten mühelos umgehen und andere ewig brauchen.
Das brauchst du vorher
Warum lädt eine App sofort, während eine andere ewig rödelt? Oft liegt es nicht am Handy, sondern daran, wie schlau das Programm rechnet. Beim Suchen und Sortieren hast du schon Schritte gezählt. Jetzt machen wir daraus eine richtige Superkraft: Du lernst vorherzusagen, wie sich ein Programm verhält, wenn die Daten wachsen.
Schritte statt Sekunden
Sekunden zu messen ist unfair: Auf einem schnellen Rechner läuft dasselbe Programm schneller als auf einem alten Handy. Deshalb zählen Informatikerinnen und Informatiker lieber Schritte, zum Beispiel Vergleiche. Die Anzahl der Schritte ist auf jedem Gerät gleich. So kannst du zwei Verfahren vergleichen, ohne sie überhaupt laufen zu lassen.
Wie wächst der Aufwand mit n?
Die spannende Frage ist nicht, wie viele Schritte ein Programm bei 10 Einträgen braucht, sondern was passiert, wenn aus 10 Einträgen 10000 werden. Die Eingabegröße nennen wir n. Bei der wächst die Schrittzahl direkt mit n: doppelt so viele Einträge, doppelt so viele Schritte. Bei der binären Suche kommt pro Verdopplung von n nur ein einziger Schritt dazu, weil jeder Schritt die Liste halbiert. Wichtig: Halbieren funktioniert nur, wenn die Liste sortiert ist.
Lineare Suche: 100.000 Schritte
Binäre Suche: 17 Schritte
Balken logarithmisch skaliert
Linear gegen Halbieren
Bei einer Liste mit 8 Einträgen ist der Unterschied winzig: 8 Schritte gegen 3 Schritte, wen kümmert das? Aber lass n wachsen. Bei 1024 Einträgen steht es 1024 gegen 10. Bei einer Million Einträgen etwa eine Million gegen 20. Das halbierende Verfahren wächst so langsam, dass selbst riesige Eingaben kaum ins Gewicht fallen. Dieses Wachstumsverhalten nennt man logarithmisch.
Warum das alles entscheidet
Suchmaschinen, Kartendienste und Streaminganbieter arbeiten mit Milliarden von Einträgen. Bei solchen Größen entscheidet das Wachstumsverhalten darüber, ob eine Antwort in Millisekunden kommt oder erst nach Stunden. Ein schnellerer Rechner hilft nur ein bisschen, ein besseres Verfahren hilft gewaltig. Deshalb ist das Zählen von Schritten eine der wichtigsten Ideen der Informatik.
Aufgaben
0 von 6 gelöstZeit zum Ausprobieren. Du kannst nichts kaputt machen, jeder Versuch zählt.
Warum zählt man Schritte, statt Sekunden zu messen?
Ein Programm braucht einen Schritt pro Eintrag. Wie viele Schritte braucht es bei n = 50?
Die lineare Suche braucht bei 100 Einträgen schlimmstenfalls 100 Schritte. Wie viele Schritte sind es schlimmstenfalls bei 200 Einträgen?
Ein Verfahren, das die Liste bei jedem Schritt halbiert, wächst so langsam, dass jede Verdopplung von n nur einen Schritt mehr kostet. Dieses Wachstumsverhalten nennt man ….
Welches Verfahren wächst am langsamsten, wenn n größer wird?
Ordne die drei Verfahren danach, wie ihr Aufwand wächst, wenn n größer wird: vom langsamsten Wachstum zum schnellsten.
- 1Die Liste bei jedem Schritt halbieren
- 2Jeden Eintrag mit jedem anderen vergleichen
- 3Jeden Eintrag einmal anschauen
Damit geht es weiter