Académique Documents
Professionnel Documents
Culture Documents
1
Il existe plusieurs stratégies possibles pour trier les éléments d’un tableau:
Admettons que le but de la manœuvre soit de trier un tableau de 12 éléments dans
l’ordre croissant. La technique du tri par sélection est la suivante : on met en
bonne position l’élément numéro 1, c’est-à-dire le plus petit. Puis en met en bonne
position l’élément suivant. Et ainsi de suite jusqu’au dernier
LSI-A1 D.JEBALI
TRI D’UN TABLEAU : LE TRI PAR SELECTION
2
Par exemple, si l’on part de :
55 132 22 13 31 88 74 63 99 38 94 56
On commence par rechercher, parmi les 12 valeurs, quel est le plus petit élément ,
et où il se trouve, c’est le nombre 13, et on l’échange alors avec le premier élément
(le nombre 55). Le tableau devient ainsi :
13 132 22 13 55 88 74 63 99 38 94 56
13 22 132 13 55 88 74 63 99 38 94 56
LSI-A1 D.JEBALI
Algorithme: LE TRI PAR SELECTION
3
nous pourrions décrire le processus de la manière suivante :
Boucle principale : prenons comme point de départ le premier élément, puis le
second, etc, jusqu’à l’avant dernier.
Boucle secondaire : à partir de ce point de départ mouvant, recherchons
jusqu’à la fin du tableau quel et le plus petit élément. Une fois que nous l’avons
trouvé, nous l’échangeons avec le point de départ.
boucle principale : le point de départ se décale à chaque tour
Pour i ← 0 à 10 on considère provisoirement que t(i) est le plus petit
posmini ← i élément
Pour j ← i + 1 à 11
Si t(j) < t(posmini) Alors on examine tous les éléments suivants
posmini ← j
Finsi
j suivant A cet endroit, on sait maintenant où est le plus petit élément.
Il ne reste plus qu'à effectuer la permutation.
temp ← t(posmini)
t(posmini) ← t(i)
t(i) ← temp
On a placé correctement l'élément numéro i, on passe à présent au
i suivant
suivant.
LSI-A1 D.JEBALI
Programme: LE TRI PAR SELECTION
4
posmin=j;
}
A cet endroit, on sait maintenant où est le plus petit élément.
temp =t[posmin]; Il ne reste plus qu'à effectuer la permutation.
t[posmin]=t[i];
T1[i] = temp; On a placé correctement l'élément numéro i, on passe à présent au
suivant.
}
LSI-A1 D.JEBALI
TRI À BULLE
5
LSI-A1 D.JEBALI
ALGORITHME: TRI À BULLE
6
LSI-A1 D.JEBALI
PROGRAMME :TRI À BULLE
7
while(permut)
{
permut=0;
for(i=0; i<N-1; i++)
{
if(T[i]>T[i+1])
{
temp =T[i];
T[i]=T[i+1];
T[i+1]= temp;
permut=1;
}
}
}
LSI-A1 D.JEBALI
Programme tri par sélection
8
#include <stdio.h> /* Affichage tableau */
main() for (i=0; i<N1; i++)
{ {
/* Déclarations */ printf("T1[%d]:%d \t",i,T1[i]);
}
int T1[50],N1, posmin,temp,j,permut=1;
//tri par selection
int i;
for (i=0; i<N1; i++)
do
{
{printf("Entrez la taille du tableau");
posmin=i;
scanf("%d",&N1);
for( j=i+1;j<N1;j++)
}while(N1>50);
{
/*saisie tableau*/
if(T1[j]< T1[posmin])
for (i=0; i<N1; i++)
posmin=j;
{
}
printf("T1[%d]: ",i);
temp =T1[posmin];
scanf("%d",&T1[i]);
T1[posmin]=T1[i];
}
T1[i] = temp;
printf("\n tableau \n");
}
LSI-A1 D.JEBALI
Programme trie à bulle
9
//trie à bulle
while(permut)
#include <stdio.h> { permut=0;
/*saisie tableau*/ for(i=0; i<N1-1; i++)
main()
for (i=0; i<N1; i++)
{ {
{
/* Déclarations */ printf("T1[%d]: ",i); if(T1[i]>T1[i+1]){temp
scanf("%d",&T1[i]); =T1[i]; T1[i]=T1[i+1];
int T1[50],N1,
} T1[i+1]= temp; permut=1;}
posmin,temp,j,permut=1;
printf("\n tableau \n"); }
int i;
/* Affichage tableau */ }
do
for (i=0; i<N1; i++) printf("\n tableau trie\n");
{printf("Entrez la taille du {
tableau"); for (i=0; i<N1; i++)
printf("T1[%d]:%d \t",i,T1[i]);
scanf("%d",&N1); } {
}while(N1>50); printf("T1[%d]:%d \t",i,T1[i]);
}
return 0;
}
LSI-A1 D.JEBALI