Ciao a tutti,
voglio fare una versione del quicksort ottimizata con l'insertion cioè che entro una certa soglia si richiami il metodo isort invece di qsort. Ecco il codice che scriverei, va bene? Non sono sicuro di aver messo i richiami dell'insertion al posto giusto..
soglia è un intero che rappresenta appunto la soglia.. dovrò poi calcolarla.

codice:

	public static void qsort(int[] a, int n) {
		if(n <= soglia)
			isort(a, n - 1);
		qsort(a, 0, n - 1);
	}

	private static void qsort(int[] a, int min, int max) {
		Random rd = new Random();
		if(min < max) {
                        if((max - min) > soglia)	
                               isort(a, max - min);
		        else {
                               int perno = min + rd.nextInt(max - min + 1);
			       int x = a[perno];
			       int i = min;
			       int j = max;
			       do {
				     while(a[i] < x)
					     i++;
				     while(a[j] > x)
					     j--;
				     if(i <= j) {
					     swap(a, i, j);
					     i++;
					     j--;
				     }
			       } while(i <= j);
			       qsort(a, min, j);
			       qsort(a, i, max);
                       } //else
		}

	}

Grazie