Tri d'un tableau, algorithmique.

Fermé
chuchub - 29 oct. 2012 à 18:10
 chuchub - 29 oct. 2012 à 18:38
Bonjour,
je dois faire un algorithme avec les consignes suivantes :
Boucle principale : on prend comme point de départ le premier élément, puis le second, etc, jusqu'à l'avant dernier.
Boucle secondaire : à partir de ce point de départ mouvant, on recherche jusqu'à la fin du tableau quel est le plus petit élément et on l'échange avec le point de départ.

Je l'ai fait de cette façon :
-
Algorithme Rangement
Variables
--------Nb : tableau [1..12] d'entiers
--------nbmin, x, k, i, c : Entiers
Début
--------Pour k allant de 1 à 11 faire
-----------nbmin <=== Nb[k]
-----------x <=== k
-----------Pour i allant de k+1 à 12 faire
--------------Si Nb[i] < nbmin alors
--------------------nbmin <=== Nb[i]
--------------------x <=== i
--------------Finsi
-----------Finpour
-----------c <=== Nb[k]
-----------Nb[k] <=== nbmin
-----------Nb[x] <=== c
--------Finpour
Fin
-
Est-il faux ? (je ne pense pas)
Y a-t'il moyen de l'améliorer ?



1 réponse

Algorithme Rangement
Variables
--------Nb : tableau [1..12] d'entiers
--------nbcomparaison, nbmin, x, k, i, c : Entiers
Début
--------Pour k allant de 1 à 11 faire
-----------nbmin, nbcomparaison <=== Nb[k]
-----------Pour i allant de k+1 à 12 faire
--------------Si Nb[i] < nbmin alors
--------------------nbmin <=== Nb[i]
--------------------x <=== i
--------------Finsi
-----------Finpour
-----------Si nbcomparaison (est différent de) nbmin alors
-----------c <=== Nb[k]
-----------Nb[k] <=== nbmin
-----------Nb[x] <=== c
-----------Finsi
--------Finpour
Fin
-
Petite modification, celui-ci à l'air mieux (moins d'itérations).
0