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 (n­1)+(n­2)+(n­3) et ainsi de suite soit une complexité de l’algorithme  de n(n­1)/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
Précédent

- 109/220

Suivant