4. Prozedurales Programmieren
4. Prozedurales Programmieren
4. Prozedurales Programmieren
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