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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Der Algorithmus<br />

Heapify(A,i)<br />

l = Left(i)<br />

r = Right(i)<br />

if l ≤ heapsize(A) AND A[l] > A[i]<br />

then largest = l<br />

else largest = i<br />

if r ≤ heapsize(A) AND A[r] > A[largest]<br />

then largest = r<br />

if largest ≠ i<br />

then vertausche A[i] <strong>mit</strong> A[largest]<br />

Heapify(A, largest)<br />

Laufzeit von heapify<br />

Vergleich von A[i] <strong>mit</strong> A[left(i)] und A[right(i)]: konstante Zeit= Θ(1)<br />

Rekursion<br />

maximale Zahl von Knoten in einem der Unterbäume left(i), right(i) = 2 n, wenn n = Zahl<br />

3<br />

der Unterknoten in i.<br />

Rekurrenzrelation<br />

T (n) ≤ T ( 2 n) + Θ(1)<br />

3<br />

Das Auflösen der Rekurrenzrelation erfolgt <strong>mit</strong> Hilfe des Mastertheorems:<br />

Satz 1.4 (Mastertheorem) Seien a ≥ 1, b > 1 Konstanten und f : R + → R + , T : R + →<br />

R + Funtionen <strong>mit</strong><br />

T (n) = aT (n/b) + f(n)<br />

wobei n/b für die ganzzahlige Division (⌊n/b⌋ oder ⌈n/b⌉) steht. Dann kann T (n) asymptotisch<br />

beschränkt werden durch<br />

⎧<br />

Θ(n ⎪⎨<br />

log b a ) falls ∃ ε>0 : f(n) = O(n log b a−ε )<br />

Θ(n<br />

T (n) =<br />

log b a log n) falls f(n) = Θ(n log b a )<br />

Θ(f(n)) falls ∃ ε>0 : f(n) = Ω(n ⎪⎩<br />

log b a+ε ) und<br />

∃ c

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!