Académique Documents
Professionnel Documents
Culture Documents
Premiers algorithmes
Triangle de Pascal
Exercice 1. crire deux procdures associant n! un entier n, la premire tant squentielle et la seconde rcursive. p n! Exercice 2. crire une procdure renvoyant la combinaison Cn = p!(np)! . Exercice 3. crire deux procdures renvoyant une matrice n n contenant le triangle de Pascal, lune utilisant les combinaisons, lautre la formule rcursive Ai,j = Ai1,j1 + Ai1,j .
On considre maintenant un tableau de N nombre rels. Exercice 4. crire une procdure renvoyant llment maximum du tableau. Exercice 5. crire une procdure renvoyant llment minimum du tableau en utilisant celle de lexercice prcdent. Exercice 6. crire une procdure changeant deux lments du tableau.
Algorithmes de tri
On sintresse ici au problme de tri dune suite de N entiers, cest--dire ranger dans lordre croissant une suite nie dentiers initialement placs dans le dsordre. Prenons par exemple la suite suivante de 10 entiers naturels 11 54 23 6 7 89 4 2 8 45 ,
3.1
Le tri bulles
Cet algorithme peut tre traduit de la faon suivante. On commence par le premier terme. Sil est suprieur au terme suivant, on les change. 11 54 23 6 7 89 4 2 8 45
Ensuite, on regarde le deuxime terme, qui est compar avec le troisime terme. Si le deuxime terme est suprieur au troisime, on les change. 11 23 54 6 7 89 4 2 8 45
On continue en passant au troisime terme... jusqu ce que lon soit arriv la n de la suite. 11 23 6 7 54 4 2 8 45 89
On vrie aisment qu ce stade, le dernier lment (llment 10) est llment ayant la plus grande valeur de la suite, donc il est bien plac. On renouvelle alors lopration maintenant sur la suite allant de llment 1 llment 9. la n de cette opration, on aura llment 9 qui sera infrieur llment 10 et suprieur tous les autres. 11 6 7 23 4 2 8 45 54 89
Exercice 7. Aprs avoir eectu le tri complet de lexemple prsent ci-dessus, crire sous forme algorithmique le tri bulles pour une suite donne sous la forme dun tableau quelconque de taille N. Exercice 8. Proposer une modication (simple) de cet algorithme permettant dinterrompre la procdure de tri au cas o les lments soient rangs par ordre croissant prmaturment.
3.2
On a vu prcdemment quune des consquences du tri bulles tait quaprs le premier parcours du tableau la valeur maximale tait situe en n de tableau. Le tri par slection repose sur la dtection de llment maximal du tableau, que lon change avec le dernier lment du tableau. 11 54 23 6 7 2 45 4 2 8 89
ltape suivante, on recherche llment de plus grande valeur parmi les N 1 premiers lments, que lon change ensuite avec llment N 1. 11 8 23 6 7 45 4 2 54 89
Larrt de cet algorithme est identique celui du tri bulles. Exercice 9. Aprs avoir eectu le tri complet de lexemple prsent ci-dessus, crire sous forme algorithmique le tri par slection pour une suite donne sous la forme dun tableau quelconque de taille N.
3.3
Supposons que les k premiers termes de la suite soient ordonns par ordre croissant (ici k = 4). 6 11 23 54 7 89 4 2 8 45
Lobjectif est dinsrer llment k + 1 la bonne place dans la sous-suite compose des k premiers termes. Pour cela, on change les lments k et k + 1, puis k 1 et k... jusqu ce que la sous-suite compose des k + 1 premiers termes soit ordonne. 6 7 11 23 54 89 4 2 8 45
On passe ensuite ltape suivante suivante, cest--dire insrer llment k +2 dans la sous-suite composes des k + 1 premiers termes. Lalgorithme dbute par linsertion du deuxime lment dans la sous-suite compose du premier terme. Exercice 10. Aprs avoir eectu le tri complet de lexemple prsent cidessus, crire sous forme algorithmique le tri par insertion pour une suite donne sous la forme dun tableau quelconque de taille N.
3.4
Tri rapide
Lalgorithme de tri rapide est bas sur la notion de pivot et de programmation rcursive. On se donne un pivot, dans notre cas ce sera le premier lment (ici 11). Ensuite, on place les lments plus petits que le pivot juste aprs le pivot et les lments plus grands que le pivot en n du tableau, ce qui donne ici : 11 6 7 4 2 8 54 23 89 45 .
et
54
23
89
45 ,
qui correspondent aux lments plus petits et plus grands que le pivot. On place le pivot entre ces deux sous-tableaux : 8 6 7 4 2 11 54 23 89 45 ,
puis on relance le tri rapide sur chaque sous-tableau. La condition darrt de la rcursion porte sur la taille des sous-tableaux qui doit tre strictement suprieure 1. Exercice 11. Aprs avoir eectu le tri complet de lexemple prsent cidessus, crire sous forme algorithmique le tri rapide pour une suite donne sous la forme dun tableau quelconque de taille N.
3.5
Tri fusion
Lalgorithme de tri rapide est bas sur la notion de programmation rcursive et de fusion de tableaux dj tris. On dcoupe le tableau en deux parties peu prs gales. On trie par le tri fusion les donnes de chaque partie. On fusionne les deux parties, cest--dire quon reconstitue le tableau directement tri. Larrt de la rcursivit seectue ds lors quune les parties ne contiennent quun seul lment. On obtient initialement deux sous-tableaux : 11 6 7 4 2 et 8 54 23 89 45 .
Exercice 12. Aprs avoir eectu le tri complet de lexemple prsent cidessus, crire sous forme algorithmique le tri fusion pour une suite donne sous la forme dun tableau quelconque de taille N. 4