Sort

Scrivi la classe SortMachine contenente i metodi descritti in seguito.

  • public static int getRandomInt(int min, int max): ritorna un numero intero casuale nel range [min;max].
  • public static void randomize(int[] a, int min, int max): riempie l’array a di numeri casuali nel range [min;max].
  • public static void swap(int[] a, int i, int j): se esistenti, scambia i valori dei due elementi di a che si trovano in i e j.
  • public static boolean isSorted(int[] a): ritorna true se l’array a è ordinato (crescente), false altrimenti.
  • public static void bubbleSort(int[] a): ordina gli elementi di a in modo crescente applicando l’algoritmo bubble sort.
  • public static void selectionSort(int[] a): ordina gli elementi di a in modo crescente applicando l’algoritmo selection sort.

Poi verifica il buon funzionamento dei metodi e confronta le prestazioni di bubble e selection sort cronometrando quanto tempo impiegano per ordinare un array di 10000 elementi.

NameSorter

Crea la classe NameSorter che dato un elenco di nomi forniti come argomenti da linea di comando, li ordina alfabeticamente. A tale scopo la classe deve contenere il metodo:

public static void sortNames(String[] names)

Che ordina l’array names fornito come parametro.

Alla fine il programma deve stampare i nomi in ordine alfabetico, esempio:

$ java NameSorter Zorro Luca Andrea Antonio
Andrea 
Antonio
Luca
Zorro