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_ALGORITHMEMa 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é?
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
Merci d'avance.
Partager