Quicksort average und best case?

1 Antwort

Wie definierst Du denn den Average Case?

Worst Case: Das Pivot liegt am Rand, d.h. alle Elemente sind kleiner oder größer.

Best Case: Dein Pivot erzeugt ein equisplit (gleich große Partitionen).

Average Case: Wie genau soll der aussehen?

Ohne das jetzt mathematisch im Detail durchzuexerzieren, mal einige kurze Überlegungen:

Nehmen wir an wir schaffen es nur jedes c. Mal genau zu halbieren, dann wächst die Rekursionstiefe auf c log n an. Kein Beinbruch, liegt immer noch in O(n log n).

Überlegen wir mal, was passiert wenn wir immer in 1/4 /3/4 teilen. Dann liege ich um einen konstanten Faktor höher in der Zahl der Ebenen.

Wenn ich also halbwegs häufig ein halbwegs passables Pivot erwische, dann liege ich für große n maximal um einen kleinen Faktor c schlechter.

https://de.wikipedia.org/wiki/Quicksort#Laufzeit

Wenn Du das liest merkste vermutlich auch, warum ich gerade 1/4 zu 3/4 gewählt habe.