Christian Sohler Paderborn, den 17. April 2007
u.v.a. Abgabe 7. Mai 2007
Ubungen zur Vorlesung ¨
Datenstrukturen und Algorithmen SS 2007
Blatt 2
AUFGABE 5:
Analysieren Sie die Laufzeit des in der Vorlesung vorgestellten MergeSort Algorithmus mit der Substitutionsmethode. Betrachten Sie dabei als Eingabe ein Array A einer beliebigen L¨ange n, d.h. dass n nicht unbedingt eine Zweierpotenz ist. Ber¨ucksichtigen Sie deshalb das Runden in Schritt 2 des MergeSort Algorithmus.
AUFGABE 6:
Analysieren Sie die Laufzeit des in der Vorlesung vorgestellten, verbesserten Divide-&-Conquer Algorithmus zur Multiplikation zweier n-Bit Integer mit der Iterationsmethode. Nehmen Sie dabei zur Vereinfachung an, dassneine Zweierpotenz ist. Geben Sie außerdem einen formalen Korrektheitsbeweis f¨ur den Algorithmus an.
AUFGABE 7:
a) L¨osen Sie die folgende Rekurrenzgleichung durch Anwenden der Iterationsmethode.
T(1) =c und f¨ur alle n >1 gilt T(n)≤9T(n/3) + 9n3
b) Die LaufzeitT(n) von Algorithmus A sei gegeben durch die RekursionsgleichungT(n) = 7·T(n2) +n2. Die Laufzeit S(n) von Algorithmus B sei gegeben durch die Rekursions- gleichung S(n) = a·S(n4) +n2. Bestimmen Sie die Laufzeiten beider Algorithmen und den gr¨oßten Wert von a, f¨ur den B asymptotisch schneller als A ist. Begr¨unden Sie Ihre Antworten!
AUFGABE 8:
In Hanoi steht ein Tempel des Brahma, in dem fleißige M¨onche
Abbildung 1: T¨urme von Hanoi
64 schwere Metallscheiben von einem Stapel auf einen anderen schichten. Die Scheiben sind so schwer, daß immer nur eine ein- zige bewegt werden kann. Die M¨onche benutzen drei Stapel, einen Start- (A), einen Hilfs- (B) und einen Zielstapel (C), und die strenge Regel des Brahma besagt, daß niemals eine gr¨oßere Scheibe auf einer kleineren liegen darf. Eine Prophezeiung be- sagt, daß an dem Tag, an dem es den M¨ochen gelingt, alle Schei- ben in der richtigen Reihenfolge auf den Zielstapel zu legen, das Ende der Welt gekommen ist.
a) Geben Sie einen rekursiven Algorithmus im Pseudocode an, der das Problem
”T¨urme von Hanoi“ l¨ost.
b) Beweisen Sie die Korrektheit des Algorithmus.
c) Formulieren und l¨osen Sie die Rekurrenzgleichung, die den Aufwand f¨ur das Problem
”T¨urme von Hanoi“ beschreibt.
AUFGABE 9:
Wir betrachten Punkte in der Ebene. F¨ur zwei Punkte p1 = (x1, y1) und p2 = (x2, y2) sagen wir, p1 dominiert p2, wenn x1 ≥ x2 und y1 ≥ y2. Ein Punkt heißt maximal, wenn er von keinem anderen Punkt dominiert wird. Geben Sie einen Divide-&-Conquer Algorithmus im Pseudocode an, der die maximalen Punkte einer Punktmenge der Gr¨oße n berechnet.
Analysieren Sie die Laufzeit des Algorithmus.
AUFGABE 10:
Eine Aufgabe zum Knobeln: Geben Sie einen Algorithmus im Pseudocode an, der die Anzahl an Dreiecken in einem ungerichteten GraphenG= (V, E) bestimmt. Die Kanten des Graphen sind dabei durch eine Adjazenzmatrix festgelegt. Zeigen Sie die Korrektheit des Algorithmus und analysieren Sie dessen Laufzeit. (Hinweis: Verwenden Sie Matrixmultiplikationen.)