Skript mit Übungen - Hochschule Ravensburg-Weingarten
Skript mit Übungen - Hochschule Ravensburg-Weingarten
Skript mit Übungen - Hochschule Ravensburg-Weingarten
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