Czas działania algorytmu

Złożoność obliczeniowa algorytmu sortowania szybkiego jest zależna od rozmiarów części, na jakie jest dzielona tablica. Jeżeli za każdym razem będzie wybierany pivot o wartości najmniejszej lub największej w tablicy, podział tablicy będzie nierównomierny. Tym samym poważnie wzrośnie czas działania algorytmu. W takim ujęciu przypadek optymistyczny i pesymistyczny nie są związane ze sposobem uporządkowania elementów w tablicy, ale z wyborem elementu osiowego, czyli ze sposobem dzielenia tablicy.

Rozważmy najpierw przypadek optymistyczny, którego złożoność obliczeniowa algorytmu wynosi O(n log n). Jeżeli tablica za każdym razem jest dzielona na dwie równe części, otrzymamy właśnie taki czas działania. Przedstawia to poniższy schemat:

RSCVQD687Q9FS
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

przypadku pesymistycznym tablica jest dzielona na dwie części, z których jedna zawiera jeden element, a druga resztę elementów. Złożoność obliczeniowa wynosi wtedy O(nIndeks górny 2).

R1J84HJ75DVPC
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Algorytm sortowania szybkiego – złożoność obliczeniowa

Założeniem algorytmu sortowania szybkiego jest – jak sama nazwa wskazuje – możliwie najkrótszy czas sortowania kosztem większego wykorzystania pamięci (wywołania rekurencyjne).

Średnia złożoność obliczeniowa algorytmu szybkiego sortowania wynosi:

O(nlogn)

Złożoność obliczeniowa takiego algorytmu w przypadku pesymistycznym to:

n22

Natomiast jego złożoność obliczeniowa w przypadku optymistycznym to:

n+2T(n2)