int v=tablica[(lewy+prawy)/2];
int p=lewy;
int q=prawy;
int x;
do
{
while (tablica[p]<v) p++; //Wyszukujemy od Lewej strony tablicy element wiekszy od piwota
while (tablica[q]>v) q--; // Wyszukujemy od prawej strony tablicy element mniejszy od piwota
if (p<=q)
{
x= tablica[p]; //Zamieniamy elementy tak aby wiekszy od piwota podszedl na prawa strone
tablica[p]=tablica[q];
tablica[q]=x; // a mniejszy od piwota poszedl na lewa
p++;
q--;
}
} while (p<=q);
if (q>lewy) quicksort(tablica,lewy,q);
if (p<prawy) quicksort(tablica,p,prawy);
Witam, czy mógłby mi ktoś wytłumaczyć program Quicksort.
Całą logikę znam, ale ten program jest dla mnie nie zrozumiały.