Voilà, je me demande vraiment pourquoi avec le code source ci dessous j'optiens des résultats aussi incohérents :
j'obtiens les temps suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 const int N= 50000; int i,j; void tri_bulle(int *tab/*,const int A*/){ int aux,a,b; a=clock(); b=0; for (i=N-1;i>0;i--){ for (j=1;j<=i;j++){ if (tab[j-1]>tab[j]){ aux=tab[j-1];tab[j-1]=tab[j];tab[j]=aux; //b=1; } } //if (b==0) i=0; } b=clock(); a=b - a; printf("par bulle : %d\n",a); fflush(stdout); } void inversion(int tab[N]){ for (i=0;i<N;i++){ j=tab[N-i];tab[N-i]=tab[i];tab[i]=j; } int main(){ int tab[N]; srand(time(NULL)); rand(); saisie(tab); tri_bulle(tab); inversion(tab); tri_bulle(tab); tri_bulle(tab); return 0; }
par bulle : 18750
par bulle : 7625
par bulle : 7703
le truc c'est pourquoi le programme met moins de temps à inverser un tableau qu'à seulement le parcourir ?
Partager