Zerlegung mit Hilfe des mittleren von drei Elementen
 

Die dritte Verbesserung von Quicksort. Diese Methode besteht darin, ein besseres zerlegendes Element zu verwenden. Der ungünstigste Fall ließe sich am sichersten vermeiden, wenn man ein zufälliges Element aus dem Feld als zerlegendes Element wählen würde. Dann würde der ungünstigste Fall mit einer vernachlässigbar kleinen Wahrscheinlichkeit eintreten. Für Quicksort wäre es jedoch übertrieben, nur für diesen Zweck einen vollständegen Zufallsgenerator einzusetzen. Es reicht eine beliebige Zahl.

Eine gute Verbesserung ist, wenn man drei Elemente aus der Datei entnimmt und das mittlere von ihnen dann als das zerlegende Element benutzt. Wenn die drei gewählten Elemente aus dem linken, mittleren und rechten Teil des Feldes stammen, kann als weiteres sortiert werden: Sortiere die drei Elemente, tausche dann das mittlere Element gegen a[r-1] aus und arbeite den Zerlegungsalgorithmus für a[l+1 .. r-2] ab. Diese Verbesserung wird Zerlegungsmethode des mittleren von drei Elementen (median-of-three) genannt.

Die Methode des mittleren von drei Elementen verbessert Quicksort auf folgende Weise:

Es wird wesentlich unwahrscheinlicher, daß bei Sortierproblemmen der ungünstigste Fall eintritt.
Die durchschnittliche Gesamtlaufzeit verkürzt sich um etwa 5%
 

Die Kombination einer nichtrekursiven Implementation von der Methode des mittleren von drei Elementen mit einem Beschneiden für kleine Teildateien kann die Laufzeit von Quicksort im Vergleich zu der einfachen rekursiven Implementation um 25% bis 30% verkürzen. Weitere Verbesserungen des Algorithmus sind möglich, doch die Zeitersparnis ist unerheblich. Mehr Zeit kann erspart werden, indem man innere Schleifen in Assembler oder Maschinensprache kodiert.

 


©Vaida Klimmek