Bonjour tout le monde,
Je débute dans l'algorithmique...j'ai compris le tri par sélection mais je n'ai pas compris pourquoi ces deux algorithmes fontionnent parfaitement bien sur Algobox :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
  VARIABLES
 i EST_DU_TYPE NOMBRE
 n EST_DU_TYPE NOMBRE
 tmp EST_DU_TYPE NOMBRE
 tab EST_DU_TYPE LISTE
 mi EST_DU_TYPE NOMBRE
 j EST_DU_TYPE NOMBRE
 DEBUT_ALGORITHME
 LIRE n
 POUR i ALLANT_DE 0 A n-1
   DEBUT_POUR
   LIRE tab[i]
 FIN_POUR
 POUR i ALLANT_DE 0 A n-2
   DEBUT_POUR
   mi PREND_LA_VALEUR i
   POUR j ALLANT_DE i+1 A n-1
     DEBUT_POUR
     SI (tab[j]<tab[mi]) ALORS
       DEBUT_SI
       tmp PREND_LA_VALEUR tab[mi]
       tab[mi] PREND_LA_VALEUR tab[j]
       tab[j] PREND_LA_VALEUR tmp
     FIN_SI
   FIN_POUR
 FIN_POUR
 POUR i ALLANT_DE 0 A n-1
   DEBUT_POUR
   AFFICHER tab[i]
 FIN_POUR
 FIN_ALGORITHME
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
  VARIABLES
 i EST_DU_TYPE NOMBRE
 n EST_DU_TYPE NOMBRE
 tmp EST_DU_TYPE NOMBRE
 tab EST_DU_TYPE LISTE
 mi EST_DU_TYPE NOMBRE
 j EST_DU_TYPE NOMBRE
 DEBUT_ALGORITHME
 LIRE n
 POUR i ALLANT_DE 0 A n-1
   DEBUT_POUR
   LIRE tab[i]
 FIN_POUR
 POUR i ALLANT_DE 0 A n-2
   DEBUT_POUR
   POUR j ALLANT_DE i+1 A n-1
     DEBUT_POUR
     SI (tab[j]<tab[i]) ALORS
       DEBUT_SI
       tmp PREND_LA_VALEUR tab[i]
       tab[i] PREND_LA_VALEUR tab[j]
       tab[j] PREND_LA_VALEUR tmp
     FIN_SI
   FIN_POUR
 FIN_POUR
 POUR i ALLANT_DE 0 A n-1
   DEBUT_POUR
   AFFICHER tab[i]
 FIN_POUR
 FIN_ALGORITHME
Ma question c'est pourquoi utiliser une variable mi pour stocker la valeur de i pour ensuite comparer tab[j] et tab[mi]...alors que le premier algo marche tout aussi bien...autrement dit qu'est-ce qui m'a échappé?
Merci d'avance.