• Keine Ergebnisse gefunden

¨Ubungen zur Vorlesung Datenstrukturen und Algorithmen SS 2007 Blatt 7

N/A
N/A
Protected

Academic year: 2022

Aktie "¨Ubungen zur Vorlesung Datenstrukturen und Algorithmen SS 2007 Blatt 7"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Christian Sohler Paderborn, den 8. Juni 2007

u.v.a. Abgabe 18. Juni 2007

Ubungen zur Vorlesung ¨

Datenstrukturen und Algorithmen SS 2007

Blatt 7

AUFGABE 23:

Wir betrachten max-Heaps.

a) Bauen Sie aus dem Array A = [7,10,8,5,25,2,3,23,17] einen max-Heap auf.

b) Zeigen Sie, dass in jedem Unterbaum eines max-Heaps das gr¨oßte Element an der Wurzel des Unterbaums steht.

AUFGABE 24:

Beweisen oder widerlegen Sie die folgenden Behauptungen.

a) FallsA aufsteigend sortiert ist, so besitzt A die min-Heap-Eigenschaft.

b) Besitzt A die min-Heap-Eigenschaft, dann ist A auch aufsteigend sortiert.

AUFGABE 25:

Wir betrachten eine Verallgemeinerung der Probleme Minimumsuche und Zweit-kleinstes- Element, und zwar das k-kleinste-Elemente-Problem.

Eingabe: Eine Folge vonn Zahlen (x1, x2, . . . , xn) und ein k∈N mit k ≤n.

Ausgabe: Eine aufsteigend sortierte Folge (y1, y2, . . . , yk) der k kleinsten Elemente aus der Eingabe-Folge (x1, x2, . . . , xn).

Geben Sie einen Algorithmus im Pseudocode an, der das Problem k-kleinste-Elemente in Laufzeit O(nlogk) l¨ost. Analysieren Sie Ihren Algorithmus.

Hinweise: Verwenden Sie Heaps. Es gen¨ugt nicht, wenn ihr Algorithmus im worst-caseO(n·k) oder O(nlogn) ben¨otigt.

AUFGABE 26:

Betrachten Sie den folgenden Algorithmus zum Aufbau eines max-Heaps aus einem beliebigen Array A.

(2)

Build-Max-Heap’(A):

1: heap-size[A]1

2: for i←2 to length[A] do

3: Max-Heap-Insert(A, A[i])

Max-Heap-Insert(A, key):

1: heap-size[A] heap-size[A] + 1

2: A[heap-size[A]]←key

3: i←heap-size[A]

4: while i >1 and A[P arent(i)]< A[i] do

5: A[i]↔A[P arent(i)]

6: i←P arent(i)

a) Illustrieren Sie die Operationen vonBuild-Max-Heap’(A) am Beispiel des Arrays A = [7,10,8,5,25,2,3,23,17].

b) Vergleichen Sie nunBuild-Max-Heap’(A) mit dem AlgorithmusBuild-Max-Heap(A) aus der Vorlesung. Erstellen beide Methoden den gleichen Heap, wenn sie mit dem gleichen Array A gestartet werden? Beweisen Sie die Gleichheit oder geben Sie ein Gegenbeispiel an!

c) Zeigen Sie, dass Build-Max-Heap’(A) in Laufzeit O(n·logn) einen max-Heap auf- baut. Beweisen Sie dazu die Korrektheit des Algorithmus und leiten Sie seine Laufzeit her.

Referenzen

ÄHNLICHE DOKUMENTE

b) Geben Sie den Algorithmus aus a) in Pseudocode an, so dass er bei Eingabe eines Arrays A mit A[i] = α i die minimalen Gesamtkosten als Ergebnis zur¨ uckliefert. Die Reihenfolge

Christian Sohler Paderborn,

(Hinweise: Der k¨urzeste Weg zwischen zwei Knoten ist durch das Gewicht gegeben, nicht durch die Anzahl an Kanten.. Welche Aussage kann man ¨uber die ben¨otigte Anzahl an

Machen Sie dabei vor allem deutlich wie die beiden Algorithmen mit Hilfe von Datenstruk- turen die Knotenmenge verwalten.

Das Spiel bevorteilt die Bank, falls die Bank im Erwartungswert von einem Spieler mehr Geld einnimmt als sie an diesen auszahlt?.

Wenden Sie dann den Tiefensuchalgorithmus startend bei Knoten 1 auf den Graphen an und geben Sie zu jedem Knoten v die Discovering/Finishing-Times (d[v], f [v]) an. Benutzen Sie

Christian Sohler Paderborn, den 22. Ist dies notwendig, oder existiert auch ein vern¨unftiger Begriff der topologischen Sortierung f¨ur allgemeine gerichtete oder ungerichtete

Modifizieren Sie den Algorithmus von Bellman-Ford, so dass dieser in Laufzeit O(|V | · |E|) f¨ur jeden Knoten v ∈ V die Kosten eines k¨urzesten s-v-Pfades berechnet, wobei |E| &gt;