Académique Documents
Professionnel Documents
Culture Documents
(1ADS-06) Algorithmes de Tri
(1ADS-06) Algorithmes de Tri
1. Généralités.
2. Algorithmes
itéra/fs.
3. Algorithmes
récursifs.
1. GÉNÉRALITÉS.
7 5 14 4 10 2 8
2 4 5 7 8 10 14
b.
Méthodes
u&lisées.
Deux
types
d’algorithmes
de
tri
étudiés
dans
ce
module
:
• Algorithmes
itéra&fs.
b.
Méthodes
u&lisées.
Remarques
• Dans
ce
module
de
cours
on
se
contentera
juste
de
décrire
les
algorithmes,
et
de
les
appliquer
sur
des
exemples.
2. ALGORITHMES ITÉRATIFS.
•Et ainsi de suite jusqu’à avoir parcouru tout la liste.
5 8 2 9 5
5 8 2 9 5
• Et
on
le
permute
avec
le
premier
élément
de
la
liste
:
2
8
5
9
5
2 8 5 9 5
• et on le permute avec le second élément de la liste :
2 5 8 9 5
2 5 8 9 5
• et on le permute avec le troisième élément de la liste :
2 5 5 9 8
2 5 5 9 8
• et on le permute avec le quatrième élément de la liste :
2 5 5 8 9
2 5 5 8 9
b.
Tri
à
bulles.
Principe
•On
parcourt
la
liste
en
comparant
chaque
élément
et
son
successeur.
•Si
ce
dernier
est
plus
pe/t
on
les
permute.
b.
Tri
à
bulles.
Exemple
• On
considère
la
liste
suivante
de
5
en/ers
:
5 8 2 9 5
b.
Tri
à
bulles.
Exemple
:
1
ère
itéra/on
• On
compare
5
et
8
:
5 8 2 9 5
5 8 2 9 5
b.
Tri
à
bulles.
Exemple
:
1
ère
itéra/on
• On
compare
8
et
2
:
5 8 2 9 5
• On les permute :
5 2 8 9 5
b.
Tri
à
bulles.
Exemple
:
1
ère
itéra/on
• On
compare
8
et
9
:
5 2 8 9 5
b.
Tri
à
bulles.
Exemple
:
1
ère
itéra/on
(fin)
• On
compare
9
et
5
:
5 2 8 9 5
• On
les
permute
:
5
2
8
5
9
b.
Tri
à
bulles.
Exemple
:
2
ème
itéra/on
• On
compare
5
et
2
:
5 2 8 5 9
• On
les
permute
:
2
5
8
5
9
b.
Tri
à
bulles.
Exemple
:
2
ème
itéra/on
• On
compare
5
et
8
:
2 5 8 5 9
b.
Tri
à
bulles.
Exemple
:
2
ème
itéra/on
(fin)
• On
compare
8
et
5
:
2 5 8 5 9
• On les permute :
2 5 5 8 9
b.
Tri
à
bulles.
Exemple
:
3
ème
itéra/on
• On
parcourt
de
nouveau
la
liste,
mais
ce8e
fois
ci
on
constate
qu’il
n’y
a
plus
de
permuta/ons
à
effectuer.
2 5 5 8 9
5 3 1 4 2
• On
décale
le
5
:
5
1
4
2
• On
décale
le
5
:
1
3
5
2
1 2 3 4 5
3. ALGORITHMES RÉCURSIFS.
a. Tri
rapide.
b. Tri
fusion.
a.
Tri
rapide.
Principe
•On
considère
le
premier
élément
de
la
liste
et
on
le
posi/onne
à
sa
place
défini/ve,
avec
à
sa
gauche
une
sous-‐
liste
cons/tuée
d’éléments
qui
lui
sont
inférieurs
ou
et
égaux
et
à
sa
droite
une
sous-‐liste
cons/tuée
d’éléments
qui
lui
sont
strictement
supérieurs.
•On
applique
alors
ce
même
traitement
aux
deux
sous-‐listes.
•Et
ce
de
façon
récursive
jusqu’à
obtenir
des
listes
d’une
seule
valeur.
©
SUPINFO
Interna/onal
University
–
h8p://www.supinfo.com
3.
Algorithmes
récursifs
a.
Tri
rapide.
Exemple
• On
considère
la
liste
suivant
de
8
en/ers
:
7 5 14 4 10 2 12 16
a.
Tri
rapide.
Exemple
:
premier
appel
• On
va
placer
la
valeur
7
:
7 5 14 4 10 2 12 16
4 5 2 7 10 14 12 16
a.
Tri
rapide.
Exemple
:
second
appel
• On
va
placer
les
valeurs
4
et
10
:
4 5 2 7 10 14 12 16
2 4 5 7 10 14 12 16
a.
Tri
rapide.
Exemple
:
troisième
appel
• On
va
placer
les
valeurs
2,
5
et
14
:
2 4 5 7 10 14 12 16
2 4 5 7 10 12 14 16
a.
Tri
rapide.
Exemple
:
quatrième
appel
• On
va
placer
les
valeurs
12
et
16
:
2
4
5
7
10
12
14
16
2 4 5 7 10 12 14 16
a.
Tri
rapide.
Exemple
:
fin
• Tous
les
éléments
de
la
liste
ont
été
placés,
le
tri
est
terminé
:
2 4 5 7 10 12 14 16
b.
Tri
fusion.
Principe
• À
chaque
appel
récursif
:
– On
scinde
la
liste
à
trier
en
deux
sous-‐listes
de
même
taille
(à
un
élément
près).
– On
trie
chacune
de
ces
deux
sous-‐listes.
– On
fusionne
les
deux
sous-‐listes
triées
en
une
seule.
b.
Tri
fusion.
Exemple
• On
considère
la
liste
suivante
de
8
en/ers
:
7 5 14 4 10 2 8
b.
Tri
fusion.
Exemple
7 5 14 4 10 2 8
7 5 14 4 10 2 8
b.
Tri
fusion.
Exemple
7 5 14 4 10 2 8
7 5 14 4 10 2 8
b.
Tri
fusion.
Exemple
7 5 14 4 10 2 8
7 5 14 4 10 2 8
b.
Tri
fusion.
Exemple
• Ces
sous-‐listes
sont
triées
(elles
n’ont
qu’un
élément),
on
va
maintenant
les
fusionner
:
7 5 14 4 10 2 8
5 7 4 14 2 10 8
b.
Tri
fusion.
Exemple
• De
nouveau
une
étape
de
fusionnnement
:
5 7 4 14 2 10 8
4 5 7 14 2 8 10
b.
Tri
fusion.
Exemple
• Encore
une
fusion
:
4 5 7 14 2 8 10
2 4 5 7 8 10 14
b.
Tri
fusion.
Exemple
:
fin
• On
a
fusionné
toutes
les
sous-‐listes
obtenues
lors
des
appels
récursifs,
le
tri
est
terminé.
2 4 5 7 8 10 14