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:
Questo è quanto mi è venuto in mente in prima battuta è probabile che il codice si può ottimizzare.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);
Ciao

Rispondi quotando