Vous êtes sur la page 1sur 5

// tri à bulle 

#define TRUE 1#define FALSE 0


void
tri_a_bulle(
int
*t,
int
n){ 
int
j =0;
int
tmp =0;
int
en_desordre =1;
while
(en_desordre){en_desordre = FALSE; 
for
(j =0; j < n-1; j++){ 
if
(t[j] > t[j+1]){tmp = t[j+1];t[j+1] = t[j];t[j] = tmp;en_desordre = TRUE;}}}}Le tri par séléctionLe tri par sélection (ou tri
parextraction) est undesalgorithmes de triles plustriviaux. Il consiste en larecherche soit du plus grandélément (ou le
plus petit) quel'on va replacer à sa positionfinale c'est-à-dire endernière position (ou enpremière), puis on recherchele
second plus grand élément
// tri par sélection 
void
tri_selection(
int
*t,
int
n){ 
int
i, min, j , tmp; 
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){
tmp = t[i];t[i] = t[min];t[min] = tmp;}}}
Le tri par permutation
Le tri par permutation est letri du jeu de cartes, ilconsiste à parcourir le tableau jusqu'à ce que l'on trouve unélément
plus petit que leprécedent donc mal placé.On prend cet élément et on lerange à sa place dans letableau puis on continue
lalecture.On s'arrête à la fin dutableau.
// tri par permutation 
void
tri_permutation(
int
*t,
int
n){ 
int
i,s=0,k; 
int
nb[n]; 
int
res [n]; 
for
(i=0;i<n;i++){ 
for
(k=0;k<n;k++){ 
if
(t[i]>t[k]) s++;nb[i]=s;}res[s]=t[i];s=0;}
for
( i=0;i<n;i++)t[i]=res[i];}
Tri par insertion
Le tri par insertion consiste àparcourir la liste : on prendles éléments dans l'ordre.Ensuite, on les compare avecles
éléments précédents jusqu'à trouver la place del'élément qu'on considère. Ilne reste plus qu'à décaler leséléments du
tableau pourinsérer l'élément considéré àsa place dans la partie déjàtriée.
// tri par insertion 
void
tri_insertion(
int
*t,
int
n){ 
int
i,p,j; 
int
x; 
for
(i =1; i < n; i++){x = t[i];p = i-1; 
while
(t[p] > x && p-- >0) {}p++;
for
(j = i-1; j >= p; j--) {t[j+1] = t[j];}t[p] = x;}}
Tri par fusion
Le tri fusion est construit
// tri par fusion 
void
fusion(
int
*t,
int
deb1,
int
fin1,
int
fin2)
Le programme de la recherche dichotomique est le suivant :
DEBUTTableau Entier
T(N)
Entier
inf , sup , milieu , x
Booléen
TrouveTrouve  Faux inf = 1sup  N
TANT QUE
(
 
inf  sup
ET
Trouve = Faux) milieu  (inf + sup)
Div
2 //
Div
est la division entière
SI (
T[milieu] = x)
ALORS
Trouve  Vrai
SINONSI
T[milieu] < x
alors
inf  inf + 1
SINON
sup  milieu 1
FIN SIFIN SIFIN TANT QUESI (
Trouve =
Vrai
)
ALORSEcrire
« Lélément » , x ,  « existe dans T »
SINONEcrire
« Lélément » , x , « nexiste pas dans T »
FIN SIFIN
 
2
.
 
L
ES
 ALG
ORITHMES DE TRI
Trier les éléments d¶un tableau revient à ordonner tous ces éléments selon un ordrecroissant ou décroissant.Soit T un tableau de N éléments muni d¶une
relation d¶ordre =. Trier ce tableau c¶estconstruire un algorithme qui devra satisfaire à la spécification suivante :

Vous aimerez peut-être aussi