Hier is de uitsplitsing van de tijdscomplexiteit van Quicksort in Big O-notatie:
* Beste case: O(n logboek n)
* Dit gebeurt wanneer het bij elke stap gekozen draaipunt de array in ongeveer gelijke helften verdeelt. Dit leidt tot een evenwichtige recursieboom.
* Gemiddeld geval: O(n logboek n)
* Gemiddeld presteert Quicksort zeer goed. De draaikeuze hoeft niet perfect te zijn om bijna optimale prestaties te bereiken.
* In het ergste geval: O(n^2)
* Dit gebeurt wanneer het draaipunt consistent het kleinste of grootste element in de array is. Dit leidt tot een zeer onevenwichtige recursieboom waarbij het ene subprobleem de grootte 0 heeft en de andere de grootte n-1. In wezen verslechtert het tot prestaties die vergelijkbaar zijn met selectiesortering of bellensortering. Een veelvoorkomend scenario is wanneer de invoerarray al of bijna is gesorteerd.
Belangrijke opmerkingen
* Gerandomiseerde snelsortering: Een variant van Quicksort die willekeurig de spil selecteert, verkleint de kans op het worstcasescenario aanzienlijk. Gerandomiseerde Quicksort heeft een gemiddelde en verwachte tijdscomplexiteit van O(n log n).
* In-place sorteren: Quicksort is een in-place sorteeralgoritme (het vereist minimaal extra geheugen, meestal O(log n) voor de recursiestapel).
* Praktische prestaties: Ondanks de mogelijkheid van een worst-case O(n^2), is Quicksort in de praktijk vaak zeer efficiënt en wordt het vaak gebruikt in standaard bibliotheeksorteerfuncties. De voordelen zijn onder meer het lokale karakter en de relatief kleine constante factoren.
* Vergelijking met samenvoegsortering: Samenvoegsortering heeft in alle gevallen een gegarandeerde O(n log n) tijdcomplexiteit, maar is niet op zijn plaats (vereist O(n) hulpruimte). Daarom wordt vaak de voorkeur gegeven aan Quicksort wanneer de ruimte van groot belang is en de gegevens naar verwachting redelijk goed verdeeld zijn.
Samengevat:
| Geval | Tijdcomplexiteit |
|------------|----------------|
| Beste | O(n logboek n) |
| Gemiddeld | O(n logboek n) |
| Slechtste | O(n^2) | |