N. B.
En C au lieu d’i=1 commencer i=0
1
Fonction TRiSelection
void permuter(int p1,int p2)
int aide=p1;
p1=p2;
p2=aide;
void tri_selection(int T[],int n)
int i,j,min;
for(i=0;i<n-1;i++)
min=i;
for(j=i+1;j<n;j++)
if(T[j]<T[min])
min=j;
if (min !=i)
permuter(T[i],T[min]);
2
}
printf("apres le tri : \n");
for(i=0;i<n;i++)
printf("%d\t",T[i]);
printf("\n");
3
4
La fonction
Exemple
#include <stdio.h>
#include <stdlib.h>
int main()
/* Déclarations */
int T[50]; /* tableau donné */
int N; /* dimension */
int i,j,tempo,indMin; /* indice courant */
/* Saisie des données */
printf("Dimension du tableau (max.50) : ");
scanf("%d", &N );
for (i=0; i<N; i++)
5
{
printf("Element %d : ", i);
scanf("%d", &T[i]);
/* Affichage avant le tri : */
printf("Contenu avant le tri : ");
for (i = 0; i < N ; i++)
printf("%4d", T[i]);
printf("\n");
/* Le tri par sélection : */
for (i = 0; i < N - 1; i++){
indMin = i;
for (j = i + 1; j < N; j++)
if (T[j] < T[indMin])
indMin = j;
if (indMin != i){
tempo = T[i];
T[i] = T[indMin];
T[indMin] = tempo;
6
/* Affichage après le tri : */
printf("\nContenu apres le tri : ");
for (i = 0; i < N ; i++)
printf("%4d", T[i]);
printf("\n");
printf("\n\n");
printf("Appuyez sur la touche Entree pour quitter");
system("pause");
/* Exécution :
Dimension du tableau (max.50) : 5
Element 0 : 45
Element 1 : 20
Element 2 : 6
Element 3 : 33
Element 4 : 2
Contenu avant le tri : 45 20 6 33 2
Contenu apres le tri : 2 6 20 33 45
*/
7
8
9