04.10.2013 Aufrufe

Überblick 5.1 Sequentielles Suchen

Überblick 5.1 Sequentielles Suchen

Überblick 5.1 Sequentielles Suchen

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.

Implementierung von Quicksort<br />

• Initialer Aufruf:<br />

quicksort(a, 0, a.length - 1);<br />

mit a.length > 1 garantiert, daß L < R in jedem rekursiven Aufruf<br />

von quicksort gilt!<br />

• Quicksort ist ein in place Algorithmus!<br />

• Quicksort ist nicht stabil!<br />

• Für sehr kleine Arrays (n ! 20) ist Quicksort nicht so effizient wie<br />

Insertion Sort.<br />

Quicksort rekursiv $<br />

Quicksort wird sehr häufig für kleine Arrays aufgerufen!<br />

In der Praxis: Modifikation von Quicksort, so daß für kleine Teilarrays<br />

Insertion Sort aufgerufen wird!<br />

© Klaus Hinrichs Informatik II – <strong>Suchen</strong> und Sortieren<br />

Analyse von Quicksort …<br />

• T(n) sei der von Quicksort benötigte Zeitaufwand $<br />

T(n) = T(k) + T(n – k) + a · n + b (+)<br />

wenn das Array aufgeteilt wird in ein Teilarray mit k Elementen und<br />

ein Teilarray mit n – k Elementen.<br />

– Konstante b: Kosten für den Aufruf von Quicksort für das zu<br />

sortierende Array.<br />

– a · n: Kosten für die Partitionierung.<br />

– T(k) und T(n – k): Kosten der rekursiven Aufrufe für die beiden<br />

Teilarrays.<br />

© Klaus Hinrichs Informatik II – <strong>Suchen</strong> und Sortieren<br />

5-51<br />

5-52

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!