Gné ?!? cherche explications
Voilà, je me demande vraiment pourquoi avec le code source ci dessous j'optiens des résultats aussi incohérents :
Code:
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;
} |
j'obtiens les temps suivant :
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 ?