Vorlesung: Rekursive Algorithmen und Algorithmenanalyse
Rekursive Algorithmen
Algorithm Engineering
- Ziel: Theorie und Praxis verbinden.
- Methodik:
- Algorithmen entwerfen, analysieren, implementieren und experimentell validieren.
- Lernprozess aus Experimenten führt zur Verbesserung der Algorithmen.
- Kopplung zur Praxis: Arbeiten mit realen Eingaben und Anwendungen.
Maschinenmodell
- Registermaschinenmodell: Vereinfachtes Modell zur Algorithmenanalyse.
- Register: Speichern kleine ganze Zahlen, minimal log(n) Bits für Speicheradressierung.
- Speicher: Enthält Maschinenworte unbeschränkter Größe (theoretisch).
- Befehle: Arithmetik, logische Operationen, Speicherzugriffe.
Algorithmenanalyse
Pseudo-Code
- Verwendung: Abstrakte Beschreibung von Algorithmen.
- Syntax: Ähnlich zu Programmiersprachen, aber kompakter.
- Dokumentation: Assertions, Vor- und Nachbedingungen, Invarianten.
Master-Theorem
- Anwendung: Analyse von rekursiven Algorithmen.
- Form: T(n) = a * T(n/b) + f(n), Lösungen abhängig von Verhältnis f(n) zu n^log_b(a).
- Fälle:
- f(n) ist O(n^log_b(a)): T(n) ist Θ(n^log_b(a)).
- f(n) ist Θ(n^log_b(a)): T(n) ist Θ(n^log_b(a) * log(n)).
- f(n) ist Ω(n^log_b(a)): T(n) hängt stark von f(n) ab.
Diese Notizen sollten einen umfassenden Überblick über die behandelten Themen der Vorlesung bieten und als Basis für weiterführendes Lernen dienen.