Programmez par plaisir! 30-07-2010
03:39
Prog-Info > C++ > Tri et Recherche > Tri par sélection. Sommaire

Le tri par sélection

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)
{
   int i, maximum;
   while(longueur>0)
   {
      // recherche de la plus grande valeur du tableau
      maximum = 0;
      for(i=1; i<longueur; i++)
         if(tableau[i]>tableau[maximum])
            maximum = i;
      // echange du maximum avec le dernier élément
      echanger(tableau, maximum, longueur-1);
      // on traite le reste du tableau
      longueur--;
   }
}

Exemple :
Les différentes étapes de l'algorithme :

730 196
730 169
630 179
130 679
103 679
013 679

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.

Le tri à bulle Le tri par insertion
[Plan Plan] [A propos A Propos] [ 661197 ]
Copyright ©2002-2009 Prog-info Tous droits réservés.