Ciao a tutti ragazzi devo implementare un algoritmo di quick sort 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, in quanto nel metodo quicksort è dichiarato come un semplice int mentre nel metodo partition è dichiarato come un array !
codice:static int quicksort(int A[], int inf, int sup){ int numConfronti; return numConfronti; }
codice:static int quicksort(int A[], int inf, int sup){ int numConfronti; if(sup-inf>=1){ int pos=partition(A,inf,sup,????); 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; }codice: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; }

Rispondi quotando