| Programmez par plaisir! |
30-07-2010 03:39 |
Le principe est de rechercher la valeur maximale dans un tableau de taille n et de l'échanger avec le dernier élément du tableau. Il faut ensuite faire la même chose avec les n-1 premiers termes du tableau puis les n-2 termes, etc... jusqu'à ce qu'il ne reste plus qu'une seule valeur.
void triSelection(int
tableau, int longueur) |
Exemple :
Les différentes étapes de l'algorithme :
| 7 | 3 | 0 | 1 | 9 | 6 |
| 7 | 3 | 0 | 1 | 6 | 9 |
| 6 | 3 | 0 | 1 | 7 | 9 |
| 1 | 3 | 0 | 6 | 7 | 9 |
| 1 | 0 | 3 | 6 | 7 | 9 |
| 0 | 1 | 3 | 6 | 7 | 9 |
Complexité :
Calculons le nombre de passages nécessaire : (n-1)+(n-2)+ ... +2+1
= n*n/2 - n/2.
Le nombre de passages est similaire au tri à bulle.
|
|