Übungsaufgaben
Zehn Übungen zum Klicken, Zuordnen, Rechnen und Knobeln — von AFB I bis AFB III. Jede Übung gibt sofort Rückmeldung; wenn Sie nicht weiterkommen, helfen die gestuften Tipps.
Jedes Verfahren gehört im ungünstigsten Fall zu einer Wachstumsklasse. Ordnen Sie jedem Verfahren seine Klasse zu.
\(O(n^2)\) ist eine obere Schranke. Geben Sie alle Laufzeitfunktionen an, die in \(O(n^2)\) liegen.
Nennen Sie die Wachstumsklassen in aufsteigender Reihenfolge, indem Sie die Karten ordnen — oben die langsamste.
Die Datenmenge wird verzehnfacht. Schätzen Sie ab, wie sich die Zahl der Schritte im ungünstigsten Fall ändert.
Ein Programm sortiert 20 000 Werte mit Insertionsort (ungünstigster Fall, \(O(n^2)\)) in 0,8 s. Berechnen Sie die erwarteten Laufzeiten.
- Insertionsort, 40 000 Werte: s
- Insertionsort, 200 000 Werte: s
- ein lineares Verfahren, das für 20 000 Werte ebenfalls 0,8 s braucht, bei 200 000 Werten: s
Ein Algorithmus braucht \(T(n) = 4n + 7\) Schritte. Zeigen Sie mit der Definition der O-Notation, dass \(T(n) \in O(n)\) gilt, indem Sie die Lücken füllen.
T(n) = 4n + 7
≤ 4n + 7 ·
= · n für alle n ≥
also T(n) ∈ O()
Ordnen Sie die Verfahren des Kapitels in ihre Wachstumsklassen ein und entscheiden Sie bei jeder Aussage, ob sie stimmt.
Algorithmus P braucht \(50 \cdot n \cdot \log_2 n\) Schritte, Algorithmus Q braucht \(n^2\). Entscheiden Sie Schritt für Schritt, welcher Algorithmus wann vorn liegt.
Ein Programm probiert alle Teilmengen aus und braucht \(T(n) = 2^n\) Schritte. Für \(n = 30\) läuft es eine Sekunde. Bestimmen Sie, wie viele Sekunden es für \(n = 40\) braucht.
Beurteilen Sie die Aussagen über die O-Notation.
