q Étape 3 : la plus petite valeur suivante est 25, déjà à la bonne position, on passe à la suivante.
q Étape 4 : la plus petite valeur suivante est 34, on permute 34 et 48. Le tableau est trié.
Si le principe est simple, l’algorithme résultant nécessite malheureusement la recherche dans tout ou partie du tableau
de la plus petite valeur possible et ce sans grande optimisation possible. On peut par contre éviter de permuter des
valeurs si aucune valeur inférieure n’a été trouvée. Voici l’algorithme :
PROGRAMME SELECTION
VAR
temp,i,j,min,Cpt:entiers
t:tableau[1..5] d’entiers
DEBUT
Cpt←5
Pour i de 1 à Cpt-1 Faire
min←i
Pour j de i+1 à Cpt
Si t[j]
min←j
FinSi
FinPour
Si min<>j alors
temp←t[min]
t[min] ←t[i]
t[i] ←temp
FinSi
FinPour
FIN
À chaque passage dans la boucle, on effectue une comparaison de moins que lors du passage précédent. Le nombre
total de passages est donc de (n1)+(n2)+(n3) et ainsi de suite soit une complexité de l’algorithme de n(n1)/2 ce
qui développé donne une complexité d’ordre O(n²).
Voici le code Java correspondant :
class chap5_triselect {
public static void main(String[] args) {
int t[]={27,44,12,18,23,19,101,54,29,77,52,88,10,32};
int i,j,cpt,temp,min;
cpt=14;
for(i=0;i
min=i;
for(j=i+1;j
if(t[j]
}
if(min!=i) {
temp=t[min];
t[min]=t[i];
t[i]=temp;
}
for(j=0;j
System.out.print(t[j]+" ");
}
System.out.println();
}
}
}
9
17
25
48
34
9
17
25
48
34
9
17
25
48
34
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
109
q Étape 4 : la plus petite valeur suivante est 34, on permute 34 et 48. Le tableau est trié.
Si le principe est simple, l’algorithme résultant nécessite malheureusement la recherche dans tout ou partie du tableau
de la plus petite valeur possible et ce sans grande optimisation possible. On peut par contre éviter de permuter des
valeurs si aucune valeur inférieure n’a été trouvée. Voici l’algorithme :
PROGRAMME SELECTION
VAR
temp,i,j,min,Cpt:entiers
t:tableau[1..5] d’entiers
DEBUT
Cpt←5
Pour i de 1 à Cpt-1 Faire
min←i
Pour j de i+1 à Cpt
Si t[j]
FinSi
FinPour
Si min<>j alors
temp←t[min]
t[min] ←t[i]
t[i] ←temp
FinSi
FinPour
FIN
À chaque passage dans la boucle, on effectue une comparaison de moins que lors du passage précédent. Le nombre
total de passages est donc de (n1)+(n2)+(n3) et ainsi de suite soit une complexité de l’algorithme de n(n1)/2 ce
qui développé donne une complexité d’ordre O(n²).
Voici le code Java correspondant :
class chap5_triselect {
public static void main(String[] args) {
int t[]={27,44,12,18,23,19,101,54,29,77,52,88,10,32};
int i,j,cpt,temp,min;
cpt=14;
for(i=0;i
for(j=i+1;j
if(min!=i) {
temp=t[min];
t[min]=t[i];
t[i]=temp;
}
for(j=0;j
}
System.out.println();
}
}
}
9
17
25
48
34
9
17
25
48
34
9
17
25
48
34
- 2 -
© ENI Editions - All rigths reserved - Jonifar lina
109
