Beruflich Dokumente
Kultur Dokumente
Hu03 2024
Hu03 2024
April 2024
Abgabe: 08. Mai 2024, 23:59 MESZ (in PANDA)
Hinweise: Geben Sie die Lösung online über PANDA als PDF ab. Eingescannte, handschriftliche
Lösungen sind ebenfalls möglich, solange sie gut lesbar sind. Unleserliche Abgaben führen zu
Punktabzug. Lösungen sind in Abgabegruppen von 2-3 Personen einzureichen. Schreiben Sie die
Namen und Uni-Mail-Adressen aller Gruppenmitglieder gut sichtbar in Ihre Abgabe. Für Plagiate,
Einzelabgaben und Abgaben in mehr als einer Gruppe gibt es für den gesamten Zettel null Punkte.
AUFGABE 1 (8 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 nicht-rekursiven, also iterativen, Algorithmus an, der zusätzlich
das Problem für jede beliebige natürliche Zahl n löst (also auch falls n ̸= 3k ). Der angegebene Al-
gorithmus soll Laufzeit O(log n) haben. Zeigen Sie die Korrektheit des Algorithmus und beweisen
Sie, dass er die geforderte Laufzeit hat.
AUFGABE 2 (7 Punkte):
Gegeben seien die Arrays
und
B = [ 11, 72, 33, 24, 8, 70, 69, 18, 33, 98, 17, 53, 7].
b) Wenden Sie den TimSort-Algorithmus mit k = 3 (siehe Präsenzübung 3) auf das Array B an.
Geben Sie dabei jeweils die Teilarrays nach jedem Divide-Schritt, nach der Ausführung des
InsertionSort-Algorithmus, und nach jedem Merge-Schritt an.
AUFGABE 3 (10 Punkte):
Wir betrachten das Sortierproblem und den aus der Vorlesung bekannten rekursiven Sortieralgo-
rithmus Merge-Sort. In dieser Aufgabe wandeln wir den rekursiven Algorithmus in einen nicht-
rekursiven (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.