Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Heap Operationen Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert.

Ähnliche Präsentationen


Präsentation zum Thema: "Heap Operationen Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert."—  Präsentation transkript:

1 Heap Operationen Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert

2 Vorlesung Prof. C. Eckert, IT - Sicherheit, WS 02/03
Beispiel: Feld mit 10 Elementen und zugehöriger Binärbaum BUILD-MAX-HEAP (A) A 4 16 4 14 16 1 3 10 4 8 14 2 7 1 16 9 3 10 2 14 4 8 7 1 heap-größe [A] länge [A] heap-größe[A] = 10 1 for i  länge [A] /2 downto 1 do MAX-HEAPIFY (A,i) 16 4 i = 1 MAX-HEAPIFY (A, i) 2 3 l  LEFT (i) l = 2 * i = 10 l = 2 * i = 6 l = 2 * i = 8 l = 2 * i = 16 16 14 4 1 i = 2 10 3 i = 3 r  RIGHT (i) r = 2 * i + 1 = 17 r = 2 * i + 1 = 7 r = 2 * i + 1 = 9 r = 2 * i + 1 = 11 if l ≤ heap-größe [A] und A[l]  A[i] 4 5 6 7 then maximum  l else maximum  i 14 2 4 8 i = 4 16 7 1 i = 5 9 10 3 if r ≤ heap-größe [A] und A[r]  A [maximum] then maximum  r maximum = l = 6 maximum = i = 5 maximum = l = 8 maximum = r = 7 maximum = i = 8 if maximum  i 8 9 10 then vertausche A[i] A [maximum] 14 2 4 8 1 7 MAX-HEAPIFY (A, maximum) i = 8 l <= heap-größe[A]  FALSCH A[l] > A[i]  FALSCH l <= heap-größe[A] und A[l] > A[i]  WAHR maximum != i  FALSCH l <= heap-größe[A] und (A[l] > A[i])  WAHR maximum != i  WAHR r <= heap-größe[A] und A[r] > A[maximum]  WAHR maximum != i  FALSCH r <= heap-größe[A]  FALSCH r <= heap-größe[A]  FALSCH maximum != i  WAHR A[r] > A[maximum]  FALSCH Weiterer Ablauf in Kurzform Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert TU Darmstadt FG Sicherheit in der Informationstechnik

3 Vorlesung Prof. C. Eckert, IT - Sicherheit, WS 02/03
Implementierung der Operationen in Pseudo-Code: Implementierung der Operation Maximum in O(1) HEAP-MAXIMUM(A) return(A[1]) (2) Implementierung der Operation Extract-Max in O(lgn). HEAP-EXTRACT-MAX (A) max = 6 1 if heap-größe [A]  1 then error „Heap-Unterlauf“ 2 5 6 max  A[1] 2 3 A[1]  A[heap-größe[A]] 4 5 2 heap-größe[A]  heap-größe [A] - 1 4 5 6 MAX-HEAPIFY (A,1) 1 3 2 return max Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert TU Darmstadt FG Sicherheit in der Informationstechnik


Herunterladen ppt "Heap Operationen Folien bitte als Vollbild-Bildschirmpräsentation (Taste F5) betrachten! Vorlesung Algorithmen und Datenstrukturen, WS10/11, C. Eckert."

Ähnliche Präsentationen


Google-Anzeigen