Ciao a tutti ragazzi devo implementare l'algoritmo di quick sort dell'attività 3 di laboratorio avendo come base di partenza il metodo partition già implementato e il metodo quicksort da completare. Ho implementato il metodo quicksort ma Il problema è che non ho capito come passare a partition il parametro numConfronti xkè nel metodo quicksort è dichiarato come un semplice int mentre nel metodo partition è dichiarato come un array !
private static int partition(int A[], int inf, int sup, int []numConfronti){
int i,j;
numConfronti[0]=0;
i=inf;
j=sup;
int med=(inf+sup)/2;
int x=A[med];
int temp=A[inf];
A[inf]=A[med];
A[med]=temp;
while (true)
{
numConfronti[0]++;
while(i<=sup && A[i]<=x){ i++;
numConfronti[0]++;
}
numConfronti[0]++;
while(A[j]>x) {j--;
numConfronti[0]++;
}
if(i<j) {
temp=A[i];
A[i]=A[j];
A[j]=temp;
}
else break;
}
temp=A[inf];
A[inf]=A[j];
A[j]=temp;
return j;
}
/*
* Algoritmo quicksort per l'ordinamento di un array di interi A
* usando come relazione d'ordine totale "<="
* @param A
*/
static int quicksort(int A[], int inf, int sup){
int numConfronti=0;
//To be implemented as exercise
return numConfronti;
}
/**
* @param args
*/
QUESTO è IL METODO QUICKSORT CHE STAVO IMPLEMENTANDO.
static int quicksort(int A[], int inf, int sup){
int numConfronti;
if(sup-inf>=1){
int pos=partition(A,inf,sup,[b]????);
if((pos-inf) < pos-pos+1){
quicksort(A,inf,pos-1);
quicksort(A,pos+1,sup);
}
else{
quicksort(A,pos+1,sup);
quicksort(A,inf,pos-1);
}
}
return numConfronti;
}