Zum Inhalt springen

Aufgabe 09 - Wachstum verstehen

Zu Zen-Modus wechseln

Ohne Formeln, aber mit Verstand: Sie ordnen Alltagsalgorithmen nach ihrem Wachstumsverhalten und begründen die Einordnung (siehe Kapitel Algorithmen analysieren).

In dieser Übung üben Sie:

  • Einordnen: konstantes, lineares, quadratisches und logarithmisches Wachstum unterscheiden.
  • Begründen: die Einordnung am Code festmachen (Schleifenstruktur!).
  • Übertragen: Konsequenzen für echte Datenmengen abschätzen.
  • Die Codeschnipsel unten, Papier oder Textdokument.

Ordnen Sie jedem Schnipsel eine Wachstumsklasse zu (konstant / logarithmisch / linear / quadratisch) und begründen Sie mit einem Satz:

  1. liste[0] + liste[liste.length - 1]
  2. eine einfache for-Schleife über alle Elemente (Summe),
  3. zwei verschachtelte Schleifen über alle Elemente (jedes Paar vergleichen),
  4. binäre Suche,
  5. zwei Schleifen hintereinander (erst Summe, dann Maximum). Achtung, ein beliebter Denkfehler!

Ein Verfahren braucht bei 1 000 Elementen genau 1 Sekunde. Schätzen Sie die Dauer bei 10 000 und 100 000 Elementen, wenn das Verfahren (a) linear, (b) quadratisch wächst. Stellen Sie die sechs Werte in einer Tabelle gegenüber und formulieren Sie Ihre Erkenntnis in einem Satz.

Finden Sie je ein Alltagsbeispiel (ohne Computer) für lineares, quadratisches und logarithmisches Vorgehen, z. B. rund um Namenslisten, Gruppenfotos oder Wörterbücher. Beschreiben Sie jedes in 2-3 Sätzen.

Ein Dokument (oder Markdown-Datei) mit den Teilen A-C. Wird in der Gruppe präsentiert und diskutiert.