/*********************/ /* Tri par insertion */ /*********************/ #include /* comme d'habitude */ #include /* contient la définition de random */ #define NMAX 100 /* taille du tableau */ #define K 200 /* plus grand élément possible */ int tab[NMAX]; void initialiser(void) { int i; for (i = 0 ; i < NMAX ; i++) { tab[i] = random(K+1); } } void tri_insertion(void) { int i,j; int tmp; for (i = 0 ; i < NMAX ; i++) { /* invariant : tab[0.. i-1] est trié */ tmp = tab[i]; j = i; /* La boucle suivante décale la moitié supérieure du tableau tab[0..i]. */ while (j > 0 && tmp < tab[j-1]) { /* && est le et logique */ tab[j] = tab[j-1]; j--; } tab[j] = tmp; /* l'ancien tab[i] est inséré à sa place */ } } void print_tab(void) { int i; for (i = 0 ; i < NMAX ; i++) { printf("%d\n",tab[i]); } } void main(void) { initialiser(); tri_insertion(); print_tab(); getchar(); }