sciandu
Informatik

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.

Suchvergleich
n100.000

Lineare Suche: 100.000 Schritte

Binäre Suche: 17 Schritte

Balken logarithmisch skaliert

Bei n = 100.000: 100.000 gegen 17 Schritte
Probier es aus: Vergrößere n und beobachte, wie unterschiedlich schnell die beiden Kurven wachsen.

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öst

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

  1. 1Die Liste bei jedem Schritt halbieren
  2. 2Jeden Eintrag mit jedem anderen vergleichen
  3. 3Jeden Eintrag einmal anschauen

Damit geht es weiter