DAP2 Präsenzübung 1

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