import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; import java.util.Arrays; import java.util.Random; public class OrdinaArray { /* * Algoritmo bubblesort per l'ordinamento di un array di interi A * usando come relazione d'ordine totale "<=" * @param A */ static int bubblesort(int A[]){ int numeroConfronti=0; for (int i=1; i<=A.length-1; i++){ boolean scambiAvvenuti = false; for (int j=1;j<= A.length-i;j++) { numeroConfronti++; if(A[j]< A[j-1]) { int temp=A[j]; A[j]=A[j-1]; A[j-1]=temp; scambiAvvenuti=true; } } if(!scambiAvvenuti) break; } return numeroConfronti; } /* * Partiziona il vettore rispetto all'elemento x e restiutisce il punto di separazione */ 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