Sie sind auf Seite 1von 2

Prof. Dr.

Holger Peine Datenstrukturen und Algorithmen - Übungsblatt 7 - SS2015


Prof. Dr. Holger Peine
DSA - Übungsblatt 7 Hochschule Hannover

SS 2015 (Stand 2015-06-03 15:20) Fakultät IV – Abteilung Informatik


Raum 334, Tel. 0511-9296-1830
Holger.Peine@hs-hannover.de

Thema
Insertion Sort, Heapsort, Heaps

Spätester Termin
… für die Vorführung der Pflichtaufgabe (24): Mi. 03.06.2015.

Aufgaben mit Punkten sollten Sie bevorzugt bearbeiten, da sie sich mit zentralen Themenstellungen
auseinandersetzen. Weitere Übungsaufgaben (0 Punkte) dienen der Vertiefung spezieller Teilbereiche. Es gilt: Die
Inhalte aller Übungsaufgaben und aller Vorlesungen sind Gegenstand der Prüfung.

Aufgabe 22: Insertion Sort und Heap Sort (0 Punkte)


a) Geben Sie den Ablauf einer Ausführung von InsertionSort für die folgende Zahlenfolge im
Detail an: (22, 15, 36, 44, 10, 3, 9, 13, 29, 25). Sie sollen dabei jeweils den Inhalt der Ausgangs-
/Ergebnisfolge sowie der Prioritätswarteschlange angeben (vgl. Folie 4-21).

b) Geben Sie den Ablauf einer Ausführung von HeapSort für die folgende Zahlenfolge im Detail an:
(2, 5, 16, 4, 10, 23, 39, 18, 26, 15). Sie sollen dabei für jeden Schritt jeweils den Inhalt des Heap in
Baumdarstellung angeben.

Aufgabe 23: Verschmelzen von Heaps (0 Punkte)


Gegeben sind zwei verlinkte binäre Bäume T1 und T2, deren Einträge die Heap-Eigenschaft erfüllen (T1
und T2 sind also Heaps). Beschreiben Sie in Pseudo-Code einen Algorithmus, um aus T1 und T2 einen
einzigen binären Baum T zu machen, der die Einträge von T 1 sowie T2 enthält und in dem die Heap-
Ordnung gilt1. Der Algorithmus soll die Laufzeit O(max(h1,h2)) haben, wenn h1 die Höhe von T1 und h2
die Höhe von T2 ist.
Heap mergeHeaps(Heap t1, Heap t2): // Ihre Aufgabe

1Es muss im Ergebnisbaum T nur die Heap-Ordnung sichergestellt sein; es muss KEIN vollständiger binärer Baum hergestellt werden, T
muss nicht die ganze Heap-Definition erfüllen.

Stand 2015-06-03 15:20 Seite 1 von 2


Prof. Dr. Holger Peine Datenstrukturen und Algorithmen - Übungsblatt 7 - SS2015

Aufgabe 24: Heaps (2 Punkte)


a) Gibt es einen Heap mit 7 verschiedenen Schlüsseln, so dass ein Präorder-Durchlauf durch den Heap
die Einträge in aufsteigender Reihenfolge zurückliefert? Wie sieht die Antwort für einen Inorder-
Durchlauf aus? Begründen Sie Ihre Antwort, indem Sie entweder einen Beispiel-Heap angeben oder
erklären, warum es einen solchen nicht geben kann.
b) Geben Sie einen Algorithmus in Pseudo-Code an, der zu einem gegebenen Heap T und einem
Schlüssel k alle Einträge im Heap ausgibt, deren Schlüssel kleiner oder gleich k ist. Der Algorithmus
sollte eine Laufzeit proportional zur Anzahl der Ergebnisse haben. Die Reihenfolge, in der die
Ergebnisse ausgegeben werden ist beliebig (insbesondere müssen sie nicht aufsteigend nach
Schlüsseln ausgegeben werden!).
Gehen Sie davon aus, dass der Heap den ADT BinaryTree aus der Vorlesung implementiert, und
benutzen Sie in Ihrem Pseudo-Code dessen Operationen.

Stand 2015-06-03 15:20 Seite 2 von 2

Das könnte Ihnen auch gefallen