Vous êtes sur la page 1sur 4

Master de sciences et technologies 1 Mention : Mathmatiques et applications

Informatique de base 20092010

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 .

Algorithmes de base sur les tableaux

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 ,

on veut donc obtenir au nal : 2 4 6 7 8 11 23 45 54 89 .

Pour raliser cela, il existe de nombreux algorithmes de tri.

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

On continue jusqu ce que la taille de la sous-suite soit un et on obtient 2 4 6 7 8 11 23 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

Le tri par slection

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

Le tri par insertion

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 .

On obtient deux sous-tableaux : 3

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 .

On continue dcouper en deux... 11 11 11 6 6 6 7 7 7 4 4 4 2 2 2 8 8 8 54 54 54 23 3 23 89 89 89 45 45 45

puis on fusionne en triant : 6 11 6 2 7 4 7 11 6 7 4 2 11 2 4 54 8 8 8 23 23 54 45 3 54 89 45 89 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

Vous aimerez peut-être aussi