U. A. G. - UFR S.E.N 2006-2007
tableau égale à N), au second tour, entre [1, N-1], ainsi de suite, jusqu'au dernier
tour, entre [N-2, N-1].
Donc, au final, pour ce tri, nous aurons à considérer deux boucles de traitement
imbriquées :
–la première qui fera évoluer une variable i (par exemple) sur [0 N-2]
pour ranger chacune des cases du tableau,
–la seconde, interne, qui fera évoluer une variable j (idem) sur [i N-1]
pour déterminer quel est l'indice de la case de valeur minimale sur
l'ensemble des cases non triées.
Une des difficultés que vous avez rencontrées est au niveau du début du tri : en
effet, comment trouver la valeur minimale du tableau et comment l'initialiser ?
Selon moi, la façon la plus judicieuse de le faire est de commencer la
comparaison en prenant comme valeur de départ, qui nous servira de base de
comparaison, la première case non triée du tableau.
Fixons les idées avec un exemple, pour N = 3 : le tableau [ 8 | 9 | 0 ]. Nous
utiliserons la variable i pour la boucle externe, la variable j pour la boucle
interne, min pour mémoriser la valeur de l'indice de la case contenant l'élément
le plus petit.
Etape Tableau i j min
1 [ 8 | 9 | 0 ] 0 0 0
2 [ 8 | 9 | 0 ] 0 1 0
3 [ 8 | 9 | 0 ] 0 2 2
4 [ 0 | 9 | 8 ] 1 1 1
5 [ 0 | 9 | 8 ] 1 2 2
On remarque bien qu'ici, à la fin de la boucle de comparaison, il faut permuter le
plus petit élément avec la première case non-triée du tableau.
Classiquement, cette permutation s'effectue à l'aide d'une troisième variable, qui
sert de tampon.
Nous pouvons donc passer à l'algorithme pour ce tri, en nous rappellant qu'ici,
nous nous préparons à écrire notre programme en utilisant des fonctions.
Avril 2007 – LS1 UE012 – PEROUMALNAÏK M.