17.11.2013 Aufrufe

Skript mit Übungen - Hochschule Ravensburg-Weingarten

Skript mit Übungen - Hochschule Ravensburg-Weingarten

Skript mit Übungen - Hochschule Ravensburg-Weingarten

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

essere Schranke<br />

Die Laufzeit von heapify hängt von der Höhe des Knotens im Baum ab. Die meisten Knoten<br />

haben sehr niedrige Höhe!<br />

(Zahl der Knoten auf Höhe h) ≤ ⌈ n<br />

2 h+1 ⌉<br />

Die Laufzeit von heapify für Knoten der Höhe h wächst linear <strong>mit</strong> h. Also T heapify (h) =<br />

O(h) = O(log(Anzahl Knoten im Unterbaum))<br />

T (n) ≤<br />

⌊log n⌋<br />

∑<br />

h=0<br />

⌈ n<br />

2 h+1 ⌉<br />

Die vorletzte Gleichung gilt weil<br />

⎛<br />

· O(h) = O⎝n<br />

h=0<br />

was man in der Formelsammlung findet.<br />

⌊log n⌋<br />

∑<br />

h=0<br />

∞∑<br />

1<br />

h<br />

2 = 2<br />

h (1 − 1 = 2,<br />

)2<br />

2<br />

⎞<br />

h<br />

⎠ = O(2n) = O(n)<br />

2 h<br />

1.3.2 Der Heapsort - Algorithmus<br />

Voraussetzung: Build-Heap setzt maximales Element an die Wurzel, d.h. in A[1]<br />

Idee<br />

Wiederhole folgende Schritte bis der Heap nur noch aus einem Element besteht: 1.) vertausche<br />

A[1] <strong>mit</strong> A[n]<br />

2.) lösche A[n] aus dem Heap<br />

3.) Heapify (A,1)<br />

Beispiel 1.11<br />

1<br />

14<br />

1<br />

10<br />

9<br />

1<br />

8<br />

2 3<br />

10<br />

8<br />

2 3<br />

9<br />

8<br />

2 3<br />

3<br />

4<br />

4 5 6 7<br />

7 9 3<br />

4<br />

4 5 6 7<br />

7<br />

1<br />

3<br />

4<br />

4 5 6 7<br />

7<br />

1<br />

2<br />

2<br />

8<br />

1 9 16 10<br />

2<br />

8<br />

14 9<br />

16 10<br />

10 8<br />

14 9<br />

16 10<br />

i<br />

i<br />

i<br />

8<br />

1<br />

7<br />

1<br />

4<br />

1<br />

4<br />

7<br />

2<br />

3<br />

3<br />

i<br />

4<br />

2<br />

5<br />

1<br />

6<br />

9<br />

7<br />

1<br />

4<br />

2<br />

3<br />

3<br />

i<br />

4<br />

2<br />

5<br />

8<br />

6<br />

9<br />

7<br />

1<br />

2<br />

2<br />

3<br />

3<br />

i<br />

4<br />

7<br />

5<br />

8<br />

6<br />

9<br />

7<br />

10 8<br />

14 9<br />

16 10<br />

10<br />

8 14 9 16<br />

10<br />

10<br />

8 14 9 16<br />

10<br />

i<br />

4<br />

1<br />

3<br />

2 3<br />

2<br />

1<br />

4 5 6 7<br />

7<br />

8<br />

9<br />

4<br />

2<br />

1<br />

i<br />

1<br />

2<br />

3<br />

3<br />

4<br />

7<br />

5<br />

8<br />

6<br />

9<br />

7<br />

4<br />

1<br />

1<br />

i<br />

2<br />

2<br />

3<br />

3<br />

4<br />

7<br />

5<br />

8<br />

6<br />

9<br />

7<br />

10 8 14 9 16<br />

10<br />

10 8 14 9 16<br />

10<br />

10 8 14 9 16<br />

10<br />

16

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!