Algorithmique et programmation [édition.hermes]

  • View
    15

  • Download
    2

Embed Size (px)

Transcript

collection Informat

Table des matires

1 . Introduction.. .............................................................................. 1 .l. Quelques mots sur lenvironnement ............................................... 1.2. Notes bibliographiques sommaires.. .............................................. 1.3. Remerciements.. ........................................................................ 1.4. Le choix de programmes ............................................................. 2 . Des programmes pour commencer.. ........................................... 2.1. Le mode dun vecteur .................................................................. 2.1.1. Construction de la premire version du programme .................. 2.1.2. Remarques mthodologiques ............................................... 2.2. Recherche dun objet.. ................................................................ 2.2.1. Recherche linaire.. ........................................................... 2.2.2. Un pige.. ....................................................................... 2.2.3. La dichotomie.. ................................................................ 2.3. De la complexit des algorithmes.. ................................................ 2.4. Rsum des principes introduits.. .................................................. 2.4.1. Un apparte sur les preuves de programmes.. ........................... 2.4.2. Le style dcriture ............................................................. 2.5. Adressage dispers...................................................................... 2.5.1. Algorithme avec chanage.. ................................................. 2.5.2. Autant de cl& que de cases.. ................................................ 2.5.3. Choix de cl et efficacit .................................................... 2.6. Exercices .................................................................................. 3. Les tris ....................................................................................... 3.1. Recherche du plus petit lment.. ..................................................

13 16 17 17 18 21 21 21 23 24 25 28 29 34 35 36 37 37 38 40 42 43 45 46

@ Hermbs, Paris, 1992 ditions Herms 34, rue Eugne Plachat 75017 Paris ISBN 2-86601-323-g

ALGO~Q~IE

m PROGRAmION

3.2. Tri par insertion ........................................................................ 3.3. Tri par bulles.. .......................................................................... 3.4. Diviser pour &gner .................................................................... 3.4.1. Diviser pour rkgner avec partition ........................................ 3.4.2. Solution sans appel r&rsif.. .............................................. 3.4.3. Quelques commentaires sur la nkursivit ............................... 3.4.4. Deux pivots.. ................................................................... 3.4.5. Tri par fusion.. ................................................................. 3.5. F&um de la complexite des algorithmes ....................................... 3.6. Exercices.. ................................................................................ Des 4.1. 4.2. 4.3. structures de donnes.. ........................................................ Les piles.. ................................................................................ Les files ................................................................................... Les arbres.. ............................................................................... 4.3.1. Arbres binaires et arbres n-aires ........................................... 4.3.2. Reprsentation des arbres .................................................... 4.3.3. Parcours darbres ............................................................... 4.3.4. Parcours prfix et post-fix................................................ Les treillis.. .............................................................................. Les graphes .............................................................................. 4.5.1. Algorithme de Schorr-Waite ................................................ 4.5.2. Amlioration de lalgorithme de Schorr-Waite.. ....................... 4.5.3. Reprsentation dun graphe sur une matrice boolenne.. ............ 4.5.4. Fermeture transitive .......................................................... Ordres partiels et totaux .............................................................. Exercices.. ................................................................................

48 51 54 54 57 59 61 63 66 66 67 67 68 70 71 72 73 74 78 79 80 84 87 88 89 90 93 93 96 97 99 100 101 105 105 108 109 111 111 114

6.1.2. Marche arriere, arbres et graphes .......................................... 6.2. Les huits reines ......................................................................... 6.2.1. Une version amliore ....................................................... 6.2.2. Une deuxieme approche ...................................................... 6.3. Exercices .................................................................................. 7. lkansformation de programmes.. ................................................ 7.1. Revenons sur le mode vecteur ...................................................... 7.2. La multiplication des gitans ......................................................... 7.3. Exercices .................................................................................. 8 . Quelques structures de donnes particulires.. .......................... 8.1. Les arbres ordonns.. .................................................................. 8.2. Les arbres quilibrs ................................................................... 8.2.1. Algorithmes de manipulation darbres quilibrs.. .................... 8.3. Les B-arbres.. ............................................................................ 8.4. Exercices .................................................................................. Bibliographie e t rfrences.. ........................................................... Glossaire ......................................................................................... Solutions de certains exercices.. ....................................................

115 116 118 119 122 125 126 128 131 133 133 135 137 138 143 145 148 151

4.4. 4.5.

4.6. 4.7.

5. Rcurrence et rcursivit ........................................................... 5.1. Lexemple type . Les tours dHanoi ............................................... 5.1.1. Cot de lalgorithme .......................................................... 5.1.2. Une analyse plus pousse.. ................................................. 5.2. Des permutations....................................................................... 5.2.1. Permutations par changes de voisins ................................... 5.2.2. Le programme .................................................................. 5.2.3. Relation avec les tours dHanoi ............................................ 5.2.4. Une variante .................................................................... 5.2.5. Une version rcursive ........................................................ 5.3. Exercices .................................................................................. 6. La marche arrire ........................................................................ 6.1. La souris et le fromage ............................................................... 6.1.1. Version t+cursive ..............................................................6

I

7

Tables et figures

2.1. Comparaison entre la recherche I&%re et la dichotomie (02.3) 2.2. Table pour ladressage dispers avec chanage ($25.1) 2.3. Table sans zone de dbordement ($2.52) 3.1. Appels aprs parution (83.4.3) 3.2. Vecteur en cours de partition (93.4.4) 4.1. Arbre du tri diviser pour rgner (94.3) 4.2. Transformation darbre n-aire en arbre binaire (4.3.1) 4.3. Reprsentation de larbre de la figure 4.2 ($4.3.2) 4.4. Parcours en profondeur dabord (ordre prefix) ($4.3.4) 4.5. Parcours en largeur dabord ($4.3.4) 4.6. Triple visite des nuds dun arbre ($4.3.4) 4.7. Parcours en ordre infix ($4.3.4) 4.8. Parcours en ordre post-fix ($4.3.4) 4.9. Un treillis (94.4) 4.10. Etats dans Schorr-Waite ($4.52) 4.11. Etats dans Schorr-Waite amlior ($4.5.2) 4.12. Un graphe ($4.5.3) 4.13. Reprsentation sur une matrice binaire ($4.5.3) 4.14. Fermeture transitive du graphe de la figure 4.13 ($4.5.4) 4.15. Fermeture transitive, une ligne (94.5.4) 4.16. Arbre binaire simple ($4.6) 5.1. Position de dpart des tours dHanoi ($5.1) 5.2. Arbre dappels pour trois disques (5.1) 5.3. Permutations de quatre entiers ($5.2.1) 5.4. Valeurs de i et du pivot dans permutations(4) ($5.2.2) 5.5. Nouvelles permutations de quatre objets ($5.2.4)

ALGORITHMIQUE

JZ P R O G R A M M A T I O N

6.1. Arbre de possibilites pour la souris ($6.1.2) 7.1. Multiplication de deux entiers ($7.2) 8.1. Un arbre binaire ordonne ($8.1) 8.2. Arbre ordonn inefficace ($8.2) 8.3. Equilibrage de larbre de la figure 8.1 ($8.2) 8.4. Avec deux nuds en plus ($8.2) 8.5. Rquilibrage de larbre de la figure 8.4 ($8.2) 8.6. Un B-arbre complet avec d=l ($8.3) 8.7. Apres lecture de 1 et 2 ($8.3) 8.8. Apres lecture du 3 ($8.3) 8.9. Apres lecture du 5 ($8.3) 8.10. Apres lecture du 7 ($8.3) 8.11. Reorganisation pour viter dintroduire un niveau ($8.3)

Les programmes

2.1. Le mode dun vecteur ($2.1.1) 2.2. Recherche dun objet dans un vecteur ($2.2.1) 2.3. Recherche par dichotomie (82.2.3) 2.4. Dichotomie, version 2 ($2.2.3) 2.5. Dichotomie, version 3 ($2.2.3) 2.6. Adressage dispers ($2.5.1) 2.7. Adressage dispers, version 2 ($2.5.2) 3.1. Schma du