Ciao a tutti, ho un problema con il quicksort; su carta sembra funzionare ma se lo eseguo e dopo stampo l'array, visualizzo l'array nell' ordine di partenza.. Ecco il mio codice:
Qualcuno mi sa aiutare?? Thanks!!codice:import java.util.Random; public class QuickSort{ static void qsort(int[] a, int inf, int sup) { if(inf < sup) { Random random = new Random (); int iPivot = inf + random.nextInt((sup-inf) + 1); int x = a[iPivot]; int i = inf; int j = sup; do { if(a[i] < x) i++; else if(a[j] > x) j--; else { scambia(a,i,j); i++; j--; } } while(i <= j); qsort(a, inf, j); qsort(a, i, sup); } } public static void scambia (int [] a, int i, int j) { int tmp = a[i]; a[i] = a[j]; a[j] = tmp; } public static void stampa (int [] a) { for (int i=0; i<a.length; i++) System.out.print(a[i] + ", "); } public static void main(String a[]){ int array[] = {5,1,4,2,3}; qsort (array, 0, a.length-1); stampa(array); } }![]()

Rispondi quotando