SoSe 2015 C. Sohler J. Flake, A. Krivo²ija R. Penninger, B. Rudak, V.Volz DAP2 Präsenzübung 1 Besprechung: 15.04.2015 17.04.2015 Abgabe: Präsenzübungen müssen nicht zu Hause bearbeitet werden, sondern werden unter Anleitung während der Übung erarbeitet. Präsenzaufgabe 1.1: (Anschauung der O-Notation) Geben Sie je ein Beispiel für Funktionen a(n), b(n), c(n) und d(n), so dass die Aussagen • a(n) ∈ O(1) • b(n) ∈ o(1) • c(n) ∈ Ω(1) • d(n) ∈ ω(1) gelten, und beweisen Sie die Korrektheit der Aussagen für die von Ihnen ausgewählten Funktionen. Was bedeuten diese Aussagen umgangssprachlich? Präsenzaufgabe 1.2: (Erste Schritte mit der ONotation) Gegeben sei die Funktion n 100 f (n) = n100 10n falls n ≤ 5 falls 5 < n ≤ 200 falls n > 200. Bestimmen Sie eine Funktion g(n), so dass f (n) ∈ Θ(g(n)) gilt. Welchen Einuss haben die Konstanten 5 und 200 auf die Wahl Ihrer Funktion gehabt? Bestimmen Sie auch eine nicht konstante Funktion h(n), so dass f (n) ∈ ω(h(n)) gilt. Präsenzaufgabe 1.3: Geben Sie (Asymptotische Komplexität) jeweils eine möglichst kleine Funktion g : N → R+ an, für die gilt: (a) n2 + 2n /100 + 3n /1000 = O(g(n)) √ (b) 5n n + 3n log3 n = O(g(n)) 1 und eine möglichst groÿe Funktion h : N → R+ , für die gilt: (c) n3 − 100n2 + 100n + 1 = Ω(h(n)) √ (d) n2 − 10n · n · ln n = Ω(h(n)) Beweisen Sie Ihre Aussagen. Hinweis : Bei dieser Aufgabe könnte eine Aussage helfen, die in der Vorlesung bewiesen wurde. Präsenzaufgabe 1.4: (Laufzeitanalyse: Primfaktoren) Führen Sie eine Worst-Case Laufzeitanalyse für den folgenden Algorithmus durch, der bei Eingabe einer ganzen Zahl n alle ihre Primfaktoren im Array A zurückgibt. 1 2 3 4 5 6 7 8 9 10 Primfaktor(int n): j←1√ m ← b nc i←2 while i ≤ m do if n teilbar durch i A[j] ← i n ← n/i j ←j+1 then else i←i+1 11 if n > 1 then 12 A[j] ← n 13 return A Ordnen Sie die Laufzeit f (n) bei Eingabe der Zahl n in die O-Notation ein, d.h. nden Sie eine möglichst kleine Funktion g(n), so dass f (n) ∈ O(g(n)) ist. 2
© Copyright 2024