Napisałem algorytm sortowania szybkiego i wszystko gra ale nie rozumiem jednego, problem podam na przykładzie.
void quicksort(int *tablica, int lewy, int prawy)
{
int v=tablica[(lewy+prawy)/2];
int i,j,x;
i=lewy;
j=prawy;
do
{
while(tablica[i]<v) i++;
while(tablica[j]>v) j--; //tu się coś zbugowało, cały czas mam błąd(nie chce sie normalnie text zapisać) nie zwracajcie uwagi
if(i<=j) //ta linia ma za zadanie zmienić liczbę i (lewa strona) z j(prawa strona ciągu) po lewej są mniejsze, po prawej większe to dlaczego jest i<=j ?
{ //logicznie myśląc warunek powinien być odwrotny wtedy zmienialibyśmy liczbę z lewej strony która by była większa od liczby z prawej strony
x=tablica[i];
tablica[i]=tablica[j];
tablica[j]=x;
i++;
j--;
}
}while(i<=j);
if(j>lewy) quicksort(tablica,lewy, j);
if(i<prawy) quicksort(tablica, i, prawy);
}