algorithmique (école d'ingénieur) · Chapitre 14 · Application directe du cours
Les quatre tris à la main
Les tris · niveau 2
Énoncé
Dérouler les quatre tris du cours sur :
- tri par insertion : le tableau après chaque insertion ;
- tri par fusion : le tableau après chaque fusion ;
- tri rapide, avec pour pivot la dernière case de la zone : le tableau après chaque segmentation ;
- tri par tas : le tableau après la construction du tas, puis après chaque extraction du maximum.
Corrigé
Les déroulements ci-dessous sont produits par le programme TracesTris.java.
- Tri par insertion : est inséré dans , déjà trié.
k=1 (insere 7) : [4, 7, 1, 3, 8, 2, 6, 5]
k=2 (insere 1) : [1, 4, 7, 3, 8, 2, 6, 5]
k=3 (insere 3) : [1, 3, 4, 7, 8, 2, 6, 5]
k=4 (insere 8) : [1, 3, 4, 7, 8, 2, 6, 5]
k=5 (insere 2) : [1, 2, 3, 4, 7, 8, 6, 5]
k=6 (insere 6) : [1, 2, 3, 4, 6, 7, 8, 5]
k=7 (insere 5) : [1, 2, 3, 4, 5, 6, 7, 8]
nom : T
valeurs : 1 3 4 7 8 2 6 5
vert : 0..4
colorier : 5
pointeurs : k=5
fleches : 5->1
fleches-bas : 1->2 2->3 3->4 4->5
legende : k = 5 : T[0:5] est trié ; 2 va en case 1, 3 4 7 8 glissent à droite
- Tri par fusion : les fusions se font dans l'ordre des retours d'appels, de la gauche vers la droite.
fusion de [0:1) et [1:2) : [4, 7, 1, 3, 8, 2, 6, 5]
fusion de [2:3) et [3:4) : [4, 7, 1, 3, 8, 2, 6, 5]
fusion de [0:2) et [2:4) : [1, 3, 4, 7, 8, 2, 6, 5]
fusion de [4:5) et [5:6) : [1, 3, 4, 7, 2, 8, 6, 5]
fusion de [6:7) et [7:8) : [1, 3, 4, 7, 2, 8, 5, 6]
fusion de [4:6) et [6:8) : [1, 3, 4, 7, 2, 5, 6, 8]
fusion de [0:4) et [4:8) : [1, 2, 3, 4, 5, 6, 7, 8]
- Tri rapide : chaque segmentation place définitivement un pivot.
segmenter [0:8) pivot 5 -> case 4 : [4, 1, 3, 2, 5, 7, 6, 8]
segmenter [0:4) pivot 2 -> case 1 : [1, 2, 3, 4, 5, 7, 6, 8]
segmenter [2:4) pivot 4 -> case 3 : [1, 2, 3, 4, 5, 7, 6, 8]
segmenter [5:8) pivot 8 -> case 7 : [1, 2, 3, 4, 5, 7, 6, 8]
segmenter [5:7) pivot 6 -> case 5 : [1, 2, 3, 4, 5, 6, 7, 8]
Les zones de taille (, , ) et vides ne sont pas segmentées.
nom : T
valeurs : 4 1 3 2 5 7 6 8
colorier : 4
zone : 0..3 au plus 5
zone : 5..7 > 5
legende : première segmentation : le pivot 5 est à sa place définitive
- Tri par tas : on entasse les cases , puis on échange la racine avec la dernière case du tas et on entasse la racine.
tas construit : [8, 7, 6, 5, 4, 2, 1, 3]
extraction de 8 : [7, 5, 6, 3, 4, 2, 1, 8]
extraction de 7 : [6, 5, 2, 3, 4, 1, 7, 8]
extraction de 6 : [5, 4, 2, 3, 1, 6, 7, 8]
extraction de 5 : [4, 3, 2, 1, 5, 6, 7, 8]
extraction de 4 : [3, 1, 2, 4, 5, 6, 7, 8]
extraction de 3 : [2, 1, 3, 4, 5, 6, 7, 8]
extraction de 2 : [1, 2, 3, 4, 5, 6, 7, 8]
On vérifie le tas construit : chaque case est supérieure ou égale à ses fils et ( ; ; ; ).
nom : T
valeurs : 8 7 6 5 4 2 1 3
fleches : 0->1 1->3 2->5 3->7
fleches-bas : 0->2 1->4 2->6
legende : tas construit : du père i vers ses fils 2i+1 (dessus), 2i+2 (dessous)100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.