Überblick 5.1 Sequentielles Suchen
Überblick 5.1 Sequentielles Suchen
Überblick 5.1 Sequentielles Suchen
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