Lehrstuhl für Informatik 1 SS 2013
Prof. Dr. Berthold Vöcking 19.04.2013
Kamal Al-Bawani Sascha Geulen
Übung zur Vorlesung Effiziente Algorithmen
Blatt 0
Aufgabe 0.1
(a) Wiederhole die Definitionen der O-,Ω- und Θ-Notation.
(b) Sortiere die folgenden Funktionen nach wachsender Größenordnung. Wenn in deiner Sortierung f vor g steht, dann istf =O(g). Begründe dabei jeweils, warum f vor g steht.
√n, nn, logn, n
logn, n, 1
n, n2, 3n, nlogn, 2n
Aufgabe 0.2
Sei A = [A1, A2, . . . , An] ein Array von natürlichen Zahlen. Der folgende Algorithmus sortiert durch einen Aufruf von sort[A,1, n] die Zahlen im ArrayA:
Algorithmus 1 sort[A, i, j]
1: if i≥j then
2: return
3: else
4: m=bi+j2 c
5: sort[A, i, m]
6: sort[A, m+ 1, j]
7: if Am > Aj then
8: Vertausche Am und Aj
9: end if
10: sort[A, i, j−1]
11: end if
(a) Bestimme eine obere Schranke für die Worst-Case-Laufzeit von sort[A,1, n].
(b) Vergleichesort[A,1, n] mit MergeSort. Wie unterscheiden sich beide Algorithmen bezüglich ihrer Laufzeit?
— bitte wenden —
Aufgabe 0.3
Betrachte das folgende Netzwerk:
q
A B C
D E F
s 3
7
4
1
1
5
9
3 3
1 8 9
2
2
Finde einen maximalen Fluss von q nachs. Begründe Deine Wahl.
Aufgabe 0.4
Betrachte die folgende verallgemeinerte Variante des Flussproblems aus der Vorlesung:
Zusätzlich zur Kapazitätsbeschränkung auf den Kanten führen wir eine Kapazitäts- beschränkung auf den Knoten ein, d.h. c: V ∪E → N. Ein zulässiger Fluss muss nun auch die Knotenkapazitäten einhalten, also die zusätzlichen Anforderungen
X
u:(u,v)∈E
f(u, v)
| {z }
fin(v)
≤c(v) ∀v ∈V \ {q} und X
u:(q,u)∈E
f(q, u)
| {z }
fout(q)
≤c(q)
erfüllen.
Führe diese Variante des Flussproblems auf die Standardversion aus der Vorlesung zurück. Zeige dabei auch die Korrektheit deiner Konstruktion.
Dieses Übungsblatt wird in den Übungen am 23./24.04.2013 besprochen.
Eine Abgabe ist nicht vorgesehen.