Witam - przeimplementowałem kod quicksorta z C++ do Javy - i nie działa (po wywołaniu w konsoli kompilator kompiluje - (pokazuję że działa )) ale po wywołaniu samego programu program ciągle sortuje. ;;;; nie wiem czy kod jest zły czy może Java nie jest odpowiednim językiem do pisania programów rekurencyjnych. Załączam kod:
public class Quicksort {
public static void quick(int [] tab, int p, int q){
int v = (p+q)/2;
int x, i, j;
i=p;
j=q;
do{
while(tab[i]>tab[v]) i++;
while(tab[j]<tab[v]) j--;
if(i<=j)
{
x=tab[i];
tab[i]=tab[j];
tab[j]=x;
}
}while (i<=j);
if(j>p) quick(tab,p,j);
if(i<q) quick(tab,i,q);
}
public static void main(String[] args) {
int [] tab = {8,64,17,53,43,40,1,15,67,84,39};
quick(tab,0, tab.length-1);
for(int i=0; i<tab.length; i++)
{
System.out.print(tab[i]+" ");
}
}
}