Per la parte sul grafico non posso aiutarti perchè non conosco i comandi in java ma sicuramente troverai qualcuno che ti aiuterà.
Da quanto ho capito hai come problema principale modellare la struttura della classe eseguitest.
Se fossi in te farei qualcosa del genere:
codice:
class TestOrdinamento {
private int NMAX=10;//numero di elementi massimi nell array da ordinare
privante int NMIS=10; //numero di volte da eseguire le misure
private int[] array = new int[NMAX]; //array di interi da ordinare
private long[] timeArrayQs = new long[NMIS];//array dei tempi per il qs
private long[] timeArrayM = new long[NMIS];//array dei tempi per il merge
private long averageTimeQs;
private long averageTimeM;
public setArray( int[] array) ; //array da popolare in maniera random
public long getAverageTime (long[] timeArray) timeArray è l'array in cui hai conservato le misuarazioni dei tempi e su cui fai la media
public long getVarTime(long[] timeArray) // calcola la varianza dei tempi ossia lo scarto quadratico medio
public long merge(int[] array); //questo metodo esegue merge e restituisce il tempo necessario per ordinare (long)
public long quickSort(int[] array);
public strorageResult(String fileName,int dim, long averageTime) //salvi sul file la dimensione dell'array e il tempo medio.
Per scrivere questo metodo serviti del codice che ti ho postato la volata scorsa.
poi nel "main"
int n=0;
while (n<NMIS){ // esegui NMIS misuarazioni su array della stessa dimensioni ma con elementi diversi
setArray(array);
timeArrayM[n] = merge(array);
timeArrayQs[n] = quickSort(array);
n++;
}
averageTimeQs = getAveraTime(timeArrayQs);
averageTimeM = getAveraTime(timeArrayM);
//analogamente per gli scarti.
infine metti tutto su due file
storageResult(quickSort.txt,NMAX,averageTimeQs);
storageResult(merge.txt,NMAX,averageTimeM);
Questo è quanto mi è venuto in mente in prima battuta è probabile che il codice si può ottimizzare.
Ciao