Uploaded by gagot98818

H3

advertisement
Prof. Dr. Sevag Gharibian
u.v.a.
21. April 2022
Abgabe: 2. Mai 2022, 10:59 MESZ (in PANDA)
Datenstrukturen und Algorithmen
Sommersemester 2022
Heimübung 3
Hinweise: Geben Sie die Lösung online über PANDA als PDF ab. Nutzen Sie hierzu am Besten
LATEX (In PANDA finden Sie eine Vorlage). Eingescannte, handschriftliche Lösungen sind ebenfalls möglich, solange sie gut lesbar sind. Unleserliche Abgaben führen zu Punktabzug.
Sie können in einer Gruppe mit bis zu 4 Teilnehmern abgeben. Schreiben Sie die Namen und
(Uni-)Mail-Adressen aller Gruppenmitglieder gut sichtbar in ihre Abgabe.
AUFGABE 1 (5 Punkte):
Gegeben ist der Algorithmus Pow(x, n), welcher bei Eingabe einer Zahl x und einer natürlichen
Zahl n der Form n = 2k , k ∈ N (also einer Zweierpotenz) den Wert xn berechnet.
Pow(x, n)
1: while n > 1 do
2:
x←x·x
3:
n ← n/2
4: end while
5: return x
Geben Sie in Pseudocode einen (iterativen) Algorithmus an, der dasselbe Problem, aber für eine
beliebige natürliche Zahl n löst. Der angegebene Algorithmus soll Laufzeit O(log n) haben. Zeigen
Sie die Korrektheit des Algorithmus und beweisen Sie, dass er die geforderte Laufzeit hat.
AUFGABE 2 (8 Punkte):
Wir betrachten das Sortierproblem und den aus der Vorlesung bekannten rekursiven Sortieralgorithmus Merge-Sort. In dieser Aufgabe wandeln wir den rekursiven Algorithmus in einen nichtrekursiven (also iterativen) Algorithmus um. Zur Vereinfachung darf angenommen werden, dass
es sich bei der Länge des Eingabearrays um eine Zweierpotenz handelt. Sie dürfen auch den aus
der Vorlesung bekannten Algorithmus Merge benutzen, sowie dessen Korrektheit annehmen.
a) Beschreiben Sie in Pseudocode eine nicht-rekursive Variante von Merge-Sort.
b) Zeigen Sie die Korrektheit des Algorithmus.
c) Analysieren Sie die worst-case Laufzeit des Algorithmus im O-Kalkül.
AUFGABE 3 (2 Punkte):
Sei das Array A = [15, 200, 42, 21, 7, 17, 9, 3] gegeben. Wenden Sie den MergeSort-Algorithmus
auf das Array an. Geben sie dabei jeweils die Teilarrays nach jedem Divide- und jedem MergeSchritt an.
Download