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:

RwGFU1wdspLEn
Ź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).

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

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

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ść czasowa algorytmu szybkiego sortowania wynosi:

O(nlogn)

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

n22

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

n+2T(n2),  gdzie T() oznacza liczbę porównań.