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