Algorithmique - Applications en C, C++ et Java

publicité
Table des matières
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Environnement algorithmique et conventions . . . . . . . . . . . . . . . . . . .
1. Les étapes de développement d’une application . . . . . . . . . . . . . . . . . . . . .
2. Le pseudo-langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Le génie logiciel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. La performance algorithmique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
18
19
21
21
22
2. Les traitements logiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Les boucles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Les sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Complexité algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
23
29
40
43
45
46
3. La gestion des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Principe de traitement des données. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Les tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Les enregistrements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Les pointeurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Les listes chaînées. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6. Gestion des données complexes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7. Variantes sur les tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
51
52
63
66
70
78
82
85
85
4. La récursivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Diviser pour résoudre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Suppression de la récursion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
89
92
93
© 2013 Pearson France – Algorithmique – Jean-Michel Léry
7672__book.indb 3
13/06/13 11:54
IV ◆ Algorithmique
4. Récursivité croisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
95
96
5. Les données abstraites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Les piles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Les files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Les arbres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
99
109
112
124
125
6. Les tris. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Tris élémentaires. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Tris avancés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
127
127
138
150
150
7. Les recherches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. La recherche séquentielle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. La recherche dichotomique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. La recherche par interpolation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4. Tables de hachage ou adressage dispersé . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Les arbres de recherche équilibrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Résumé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Problèmes et exercices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
153
153
156
158
159
172
179
180
8. Les méthodes numériques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1. Interpolation polynomiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Méthode des moindres carrés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Recherche des solutions d’équations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
183
193
198
9. Les algorithmes classiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
1. Algorithme du plus court chemin de Dijkstra. . . . . . . . . . . . . . . . . . . . . . . 215
2. Algorithme de compression de données de Huffman . . . . . . . . . . . . . . . . 227
Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
© 2013 Pearson France – Algorithmique – Jean-Michel Léry
7672__book.indb 4
13/06/13 11:54
Téléchargement