Tri, java, et temps d'exécution
Bonjour,
j'ai réalisé un tri en java, et je veux étudier les perfomance de ce tri.
Ainsi je réalise des tests :
Code:
1 2 3 4 5 6 7 8 9
|
for(int i=0;i<10;i++){
Tri test=new Tri();
dateD=Calendar.getInstance();
test.tri3(0,test.taille,2,test.moyenne(0,test.taille-1));
dateF=Calendar.getInstance();
double temps=dateF.getTimeInMillis()-dateD.getTimeInMillis();
System.out.println(temps);
} |
En gros ça donne ça, avec différents paramètre de taille de la liste.
Ce que je ne comprend pas, c'est que les résultats sont les suivants :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
3250.0
766.0
765.0
578.0
578.0
578.0
593.0
578.0
578.0
594.0 |
Au delà de l'algorithme, est-ce que la machine garde en mémoires certaines choses pour aller plus vite lors d'une nouvelle exécution ?
J'ai l'impression que mes tests sont indépendants !
Pour info, je génère à chaque fois une nouvelle liste avec des double aléatoire (du moins j'espère ^^) :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public Tri(){
Calendar date;
Random rand=new Random();
liste=new double[taille];
for(int i=0;i<taille;i++){
date=Calendar.getInstance();
rand.setSeed((long)(date.getTimeInMillis()*Math.random()));
liste[i]=rand.nextDouble();
}
} |
Quelqu'un a une explication ?
Merci