Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1Petra Mutzel DAP2 SS08 Beispielanimation Heap-Sort Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund.

Ähnliche Präsentationen


Präsentation zum Thema: "1Petra Mutzel DAP2 SS08 Beispielanimation Heap-Sort Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund."—  Präsentation transkript:

1 1Petra Mutzel DAP2 SS08 Beispielanimation Heap-Sort Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund Teil der 7. VO DAP2 SS 2008 29. April 2008 1Petra Mutzel DAP2 SS08

2 2 Idee von Heap-Sort Elemente im unsortierten Array so verschieben, dass die Heap-Eigenschaft erfüllt ist (CreateHeap) Wurzel aus Heap entfernen Heap-Eigenschaften wiederherstellen (Sifting) Größtes Element im Heap finden ist einfach Wurzel = erstes Element im Array

3 3Petra Mutzel DAP2 SS08 4 Betrachte Knoten über den Blättern repariere Teilheap Bearbeite Baum von unten nach oben Teilbäume sind immer Heaps CreateHeap 1 2 3 567 S R T ING Die Heapbedingung ist an den Blättern erfüllt. Beobachtung Algorithmus O 1234567 SOIRTNG

4 procedure SIFTDOWN (i, m) { while Knoten i hat Kinder m { j := Kind m mit größerem Wert if A[i] < A[j] then { vertausche A[i] und A[j] i := j } else return } } 4 CreateHeap 1 2 3 567 S O R T ING procedure C REATE H EAP () { for i := n/2 … 1 { S IFT D OWN (i, n) } i 2i 2i+ 1 1234567 SOIRTNG

5 i 2i 2i+ 1 4 CreateHeap 1 2 3 567 S O R T ING 1234567 SOIRTNG procedure SIFTDOWN (i, m) { while Knoten i hat Kinder m { j := Kind m mit größerem Wert if A[i] < A[j] then { vertausche A[i] und A[j] i := j } else return } } procedure C REATE H EAP () { for i := n/2 … 1 { S IFT D OWN (i, n) }

6 4 CreateHeap 1 2 3 567 S T R O ING i 1234567 STIRONG j procedure SIFTDOWN (i, m) { while Knoten i hat Kinder m { j := Kind m mit größerem Wert if A[i] < A[j] then { vertausche A[i] und A[j] i := j } else return } } procedure C REATE H EAP () { for i := n/2 … 1 { S IFT D OWN (i, n) } Heap-Erstellung beendet

7 7Petra Mutzel DAP2 SS08 4 HeapSort 1 2 3 567 T S R O ING procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) } 1234567 TSIRONG k G T TG

8 8Petra Mutzel DAP2 SS08 4 HeapSort 1 2 3 567 G S R O INT 1234567 GSIRONT k S G O G SGGO procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) }

9 9Petra Mutzel DAP2 SS08 4 HeapSort 1 2 3 567 S O R G INT 1234567 SOIRGNT k S N NS R R N N procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) }

10 10Petra Mutzel DAP2 SS08 4 HeapSort 1 2 3 567 R O N G IST 1234567 ROINGST k I R RI O I IO procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) }

11 11Petra Mutzel DAP2 SS08 4 HeapSort 1 2 3 567 O I N G RST 1234567 OIRNGST k G O OG N G NG procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) }

12 12Petra Mutzel DAP2 SS08 HeapSort 1 2 3 567 N I G O RST 1234567 NIRGOST k N G NG I G IG 4 procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) }

13 13Petra Mutzel DAP2 SS08 4 HeapSort 1 2 3 567 I G N O RST 1234567 IGRNOST k I G IG procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) }

14 14Petra Mutzel DAP2 SS08 Ende der Animation


Herunterladen ppt "1Petra Mutzel DAP2 SS08 Beispielanimation Heap-Sort Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund."

Ähnliche Präsentationen


Google-Anzeigen