import java.util.Arrays; import java.util.Vector; import java.util.Scanner; public class SortAdv { private static int numPassi = 0; private static int numScambi = 0; public static void main(String[] args) { int n = 5; Comparable[] a = new Double[n]; for (int i = 0; i < a.length; i++) { a[i] = new Double(10.-i);; } System.out.println("inizializzo array con "+n+" elementi"); System.out.println(Arrays.toString(a)); selectionSort(a); System.out.println(Arrays.toString(a)); Comparable[] v = {7, 3, 5, 2, 4}; mergeSort(v); System.out.println(Arrays.toString(v)); Comparable[] z = {2, 8, 7, 1, 3, 5}; System.out.println(Arrays.toString(z)); quickSort(z); System.out.println(Arrays.toString(z)); /* Scanner sc = new Scanner(System.in); System.out.println("quanti double vuoi inserire ?"); int l = sc.nextInt(); Comparable[] da = new Double[l]; for(int i=0;i med){ for (int i = indexSup; i <= sup; i++) { aux[index] = a[i]; index++; } } else { for (int i = indexInf; i <= med; i++) { aux[index] = a[i]; index++; } } numPassi+=index; //copio vettore ausiliario in quello originale for (int i = 0; i < aux.length; i++) { a[i+inf] = aux[i]; } numPassi+=aux.length; } /** * Ordina il vettore a utilizzando l'algoritmo quicksort *

* richiama la funzione privata qSort per ordinare il vettore, inizializza numPassi e numScambi a 0 * * @param a il vettore da ordinare * */ public static void quickSort(Comparable[] a){ numPassi = 0; numScambi = 0; qSort(a, 0, a.length-1); } /** * Ordina il vettore a dall'indice p all'indice r utilizzando l'algoritmo quicksort * Sceglie come pivot l'ultimo elemento del vettore. * * @param a il vettore da ordinare * @param p indice iniziale * @param r inidice finale * */ private static void qSort(Comparable[] a,int p,int r) { if (p