17.12.2012 Aufrufe

4. Prozedurales Programmieren

4. Prozedurales Programmieren

4. Prozedurales Programmieren

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.

Grobe Laufzeitabschätzung von Heapsort:<br />

Seien C, M und N definiert wie auf Folie <strong>4.</strong>133. Wir<br />

betrachten nur den ungünstigsten Fall.<br />

Ungünstigster Fall:<br />

1. Herstellen der Heap-Eigenschaft:<br />

Bezeichne j die Anzahl der Niveaus im Heap,<br />

also 2 ≤ N ≤ 2 -1.<br />

Dann gibt es auf Niveau k höchstens 2 Schlüssel<br />

und C und M sind proportional zu j-k .<br />

Insgesamt gilt dann für die Anzahl der Operationen<br />

zur Herstellung der Heap-Eigenschaft:<br />

j-1 k<br />

max<br />

Σ 2 * (j-k) = Σ i * 2 = 2 * Σ i ≤ 2*N*2 ∈O(N)<br />

i=1<br />

i=1 2<br />

k=1<br />

j-1 j<br />

max<br />

j-1 j-i j<br />

2. Auswahl des Wurzelelements und Versickern:<br />

Da die Höhe eines fast vollständigen Binärbaums<br />

von Ordnung O(log N) ist, führt heapify O(log N)<br />

Operationen aus. Damit ergibt sich für diese Teile<br />

die Komplexität O(N log N).<br />

3. Komplexität des gesamten Algorithmus:<br />

O(N) + O(N log N) = O(N log N)<br />

j-1 i<br />

0<strong>4.</strong>12.08 © A. Poetzsch-Heffter, TU Kaiserslautern<br />

145<br />

k

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!