Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Informatik 1 - Mitschriften von Klaas Ole Kürtz
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2.5.2 Größenordnungen<br />
• wichtig: Vergleich <strong>von</strong> Resourcen-Verbrauch (Zeit, Speicherbedarf)<br />
• gemessen in Abhängigkeit <strong>von</strong> einem Parameter n (Genauigkeit bei<br />
Wurzel, n-te Zahl bei Fibonacci, Größe der Matrix etc.)<br />
• R(n): Betrag der Resourcen des Prozesses, um Problem der Größe n zu<br />
lösen<br />
• exakt schwer meßbar (abhängig <strong>von</strong> Implementierung)<br />
⇒ R(n) hat Größenordnung O(f(n)), falls es Konstanten c und n 0 gibt<br />
(unabhängig <strong>von</strong> n) mit R(n) ≦ c · f(n) für alle n ≧ n 0 .<br />
• Beispiele:<br />
– Linearer rekursiver Fakultätsprozeß: Zeit O(n), Speicher O(n)<br />
– Iterative Version: Zeit O(n), Speicher O(1) (konstant!)<br />
– Baumrekursion bei Fibonacci: Zeit O(φ n ), Speicher O(n)<br />
• etwas vereinfacht, z.B. die Multiplikation hat laut Annahme konstanten<br />
Aufwand, teilweise ist dies aber tatsächlich abhängig <strong>von</strong> der Zahlengröße,<br />
gibt aber grobes Maß für die Effizienz <strong>von</strong> Algorithmen<br />
• Prozesse mit exponentieller Laufzeit O(c n ) in der Praxis unbrauchbar,<br />
für manche Probleme gibt es aber offenbar keine effizienteren Algorithmen;<br />
Hilfsmittel/Work-Around: Heuristiken<br />
2.5.3 Beispiele für effiziente Algorithmen<br />
Beispiel Potenzrechnung (Eingabe b und n, Ausgabe b n ):<br />
• Unmittelbare Lösung: rekursive Definition<br />
(define (pot b n) (if (= n 0) 1 (* b (pot b )- n 1)))<br />
Zeit und Speicher: O(n)<br />
• iterative Version:<br />
(define (pot b n)<br />
(define (pot-iter z p)<br />
(if (= z 0) p<br />
(pot-iter (- z 1) (* p b))))<br />
(pot-iter n 1))<br />
14