Corps de l'algorithme simplifié:
|
Variables en
entrée: int tailleTab=10; int tab[tailleTab]={45,25,3,122,345,12,26,89,1,7}; /* le tableau est entièrement initialisé */ int nbEffectif=10; |
Variables
auxiliaires: int indCourant; /* indice compteur de l'itérative de premier niveau */ int indMini; /* indice de l'élément minimum */ int elemTemp; /* variable intermédiaire nécessaire pour l'échange entre lélément minimum et l'indice courant */ int ind; /* indice compteur de l'itérative de second niveau (imbriquée) */ |
Corps de
l'algorithme détaillé: indCourant=0; /* initialisation de l'indice de la première itérative */ while (indCourant < (nbEffectif-2)) /* de 0 à 8 pour un tableau de 10 éléments 8 est bien l'avant dernier */ { ind = indCourant; /* initialisation de l'indice de la seconde itérative */ indMini = ind; /* on initialise le minimum au premier élément */ while (ind < (tailleTab - 1)) /* on parcours le tableau jusqu'au dernier élément */ { if (tab[ind] < tab[indMini] ) /* on a trouvé un plus petit élément */ indMini = ind; /* il devient le nouveau minimum */ ind = ind +1; }; /* fin du while (ind < (tailleTab - 1)) */ elemTemp = tab[indMini]; /* on commence l'échange avec la variable auxiliaire */ tab[indMini] = tab[indCourant]; tab[indCourant] = elemTemp; /* l'inversion est terminée */ indCourant = indCourant + 1; /* on passe au suivant pour trier le reste du tableau */ } /* fin du while (indCourant < (tailleTab - 2) */ for (ind=0; ind<nbEffectif; i++) afficher(" ", tab[ind]); /* afficher les éléments du tableau */ |