Höhere Algorithmik, WS 2012/13 — 3. ¨Ubungsblatt

Werbung
Höhere Algorithmik, WS 2012/13 — 3. Übungsblatt
Abgabe: Freitag, 2. November 2012, 10:15 Uhr
0. (0 Punkte) Fassen Sie stichwortartig den Inhalt der beiden letzten Vorlesungen zusammen. Diese Aufgabe ist, wie auf allen Übungsblättern, Voraussetzung dafür, dass das
Übungsblatt bewertet wird.
1. Rekursion (10 Punkte)
In der Vorlesung wurde die Rekursion
T (n) = T (bn/2c) + T (dn/2e) + 2, für n > 2
mit den Anfangswerten T (1) = 0, T (2) = 1 betrachtet und die Formel T (n) = 3n/2 − 2
für Zweierpotenzen der Form n = 2k ausgerechnet.
(a) Bestimmen Sie eine Formel für die Werte der Form n = 3 · 2k .
(b) Beweisen Sie durch vollständige Induktion die folgende Ungleichung für alle n ≥ 2.
1 ≤ T (n) − T (n − 1) ≤ 2
(c) Zeigen Sie, dass durch diese Ungleichungen und die für n = 2k und n = 3 · 2k
bekannten Werte von T (n) alle Werte von T (n) bestimmt sind.
(d) Beweisen Sie eine Schranke T (n) ≤ cn für ein möglichst kleines c.
2. Eine alte Klausuraufgabe (0 Punkte)
Gegeben ist eine unsortierte Folge von n verschiedenen Zahlen a1 , . . . , an . Entwerfen
Sie einen effizienten Algorithmus, der die Anzahl der Paare (i, j) mit 1 ≤ i < j ≤ n und
3ai = aj bestimmt. Welche Laufzeit und welchen Speicherbedarf hat Ihr Algorithmus?
3. Stichwortsuche. Der kleinste Textausschnitt (0 Punkte)
Entwerfen und analysieren Sie einen effizienten Algorithmus für folgendes Problem:
Gegeben sind zwei sortierte Folgen A = (a1 , a2 , . . . , am ) und B = (b1 , b2 , . . . , bn ). Jede
Folge ist ein Index, der angibt, an welchen Stellen ein bestimmtes Wort in einem Text
vorkommt. Gesucht ist das kleinste Intervall [u, v], das sowohl Elemente von A als auch
Elemente von B enthält.
Beispiel: Das Wort divide kommt an den Positionen A = (11, 16, 42, 101, 125, 767) vor,
conquer an den Positionen B = (2, 44, 289, 300). Dann ist [42, 44] der kleinste Textausschnitt, der beide Wörter enthält.
4. (10 Punkte) Lösen Sie die vorige Aufgabe für drei Eingabefolgen A, B, C.
5. (10 Punkte) Bestimmen Sie die Anzahl T (n) der rekursiven Aufrufe der Funktion g(n),
die das n-te Glied bn der durch die Rekursion
bn = bn−1 + 2bn−2 , für n > 2
und b1 = 2, b2 = 5 gegebene Folge nach dieser Rekursionsformel (analog zu Aufgabe 5
vom 2. Übungsblatt) rekursiv berechnet.
Zeichnen Sie den Rekursionsbaum für die Berechnung von b5 .
6. Rekursionsgleichungen (0 Punkte) Geben Sie, wenn möglich, möglichst genaue untere
und obere asymptotische Schranken für die Lösung T (n) der folgenden Rekursionen an.
Die Rekursionen gelten für alle n ≥ n0 , für ein festes n0 .
√
(a) T (n) = 2 · T (bn/4c) + Θ( n)
(c) T (n) = 2 · T (bn/3c) + O(n)
(b) T (n) = 2 · T (n − 1) + 1
(d) T (n) = 3 · T (dn/3e) + O(n)
4
Herunterladen