Jeden z najszybszych algorytmów sortowania. Najpierw dzielimy tablicę na dwie części, według pewnego elementu tablicy. Wszystkie większe elementy są
przerzucane za tą liczbę, a mniejsze przed. Następnie funkcja jest wywoływana rekurencyjnie i sortowana jest jedna z wczesniej utworzonych części - czyli
znowu dzielimy tę część na 2 według jednego z elementów i przerzucamy liczby. Jeśli w pewnym momencie nie będziemy mogli podzielić tablicy, bo będziemy mieli
tylko 1 liczbę, to przerywamy działanie algorytmu.
Złożoność tego algorytmu to n*log2n, to oznacza że czas wykonywania wraz ze wzrostem ilości elementów rośnie wolno.


Implementacja funkcji sortującej w c:

void quicksort(int tablica[10], int x, int y) // x to pierwszy element tablicy, y - ostatni
{
int i,j,v,temp;
i=x;
j=y;
v=tablica[div(x+y,2).quot];
do
{
while (tablica[i]<v) i++;
while (v<tablica[j]) j--;
if (i<=j)
{
temp=tablica[i];
tablica[i]=tablica[j];
tablica[j]=temp;
i++;
j--;
}
}
while (i<=j);
if (x<j) quicksort(tablica,x,j);
if (i<y) quicksort(tablica,i,y);
}