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 April Petra 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 S R T ING Die Heapbedingung ist an den Blättern erfüllt. Beobachtung Algorithmus O 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 S O R T ING procedure C REATE H EAP () { for i := n/2 … 1 { S IFT D OWN (i, n) } i 2i 2i SOIRTNG

5 i 2i 2i+ 1 4 CreateHeap S O R T ING 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 S T R O ING i 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 T S R O ING procedure HEAPSORT () { CREATEHEAP () for k := n … 2 { vertausche A[ 1 ] und A[k] SIFTDOWN ( 1, k- 1 ) } TSIRONG k G T TG

8 8Petra Mutzel DAP2 SS08 4 HeapSort G S R O INT 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 S O R G INT 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 R O N G IST 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 O I N G RST 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 N I G O RST 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 I G N O RST 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