Introduction à l’algorithmique
Alain DIDIERJEAN
10 octobre 2010
Le présent document constitue le support du cours d’algorithmique dispensé par
Alain DIDIERJEAN. Toute autre utilisation, toute reproduction même partielle
ne peut se faire qu’après accord écrit de l’auteur.
Tous droits réservés Alain DIDIERJEAN 2004, 2005, 2006, 2007, 2008, 2009, 2010.
Table des matières
1. Introduction 11
1.1. Ordinateur .............................. 11
1.1.1. Dénition........................... 11
1.1.2. Le modèle de Von Neuman. . . . . . . . . . . . . . . . . . 12
1.2. Programmes, processus . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3. Langages de programmation . . . . . . . . . . . . . . . . . . . . . 13
1.3.1. Langage machine . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.2. Assembleur .......................... 15
1.3.3. Interprétation . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.4. Compilation.......................... 17
1.3.5. Bytecodes .......................... 17
1.4. Paradigmes de programmation . . . . . . . . . . . . . . . . . . . 17
1.4.1. Programmation impérative . . . . . . . . . . . . . . . . . 18
1.4.2. Programmation déclarative . . . . . . . . . . . . . . . . . 18
1.4.3. La programmation par objets . . . . . . . . . . . . . . . . 20
2. Algorithmes et heuristiques 21
2.1. Dénitions............................... 21
2.2. De la logique à l’algorithmique . . . . . . . . . . . . . . . . . . . 22
2.3. Lesoutils ............................... 22
2.3.1. Notion de types de données abstraits . . . . . . . . . . . . 22
2.3.2. Types de bases . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.3. Opérations .......................... 25
2.3.4. Structures de contrôle . . . . . . . . . . . . . . . . . . . . 27
2.4. Les phases d’élaboration d’un algorithme . . . . . . . . . . . . . . 30
2.4.1. Analyse ............................ 30
2.4.2. Conception .......................... 31
2.4.3. Implantation ......................... 31
2.4.4. Test .............................. 31
2.4.5. Documentation . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5. Premierexemple ........................... 32
2.5.1. La suite de Fibonacci . . . . . . . . . . . . . . . . . . . . 32
2.6. Notion de complexité . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.6.1. Dénition........................... 37
2.6.2. Méthode d’analyse . . . . . . . . . . . . . . . . . . . . . . 37
2.6.3. Classification des algorithmes . . . . . . . . . . . . . . . . 38
3. Les tris 39
3.1. Un peu de vocabulaire . . . . . . . . . . . . . . . . . . . . . . . . 39
3
Table des matières
3.2. Triàbulles .............................. 39
3.2.1. Algorithme .......................... 39
3.2.2. Implantation ......................... 39
3.2.3. Complexité .......................... 40
3.3. Triparsélection ........................... 40
3.3.1. Algorithme .......................... 40
3.3.2. Implantation ......................... 41
3.3.3. Complexité .......................... 41
3.4. Triparinsertion ........................... 41
3.4.1. Algorithme .......................... 41
3.4.2. Implantation ......................... 41
3.4.3. Complexité .......................... 42
3.5. Letrirapide.............................. 42
3.5.1. Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.5.2. Algorithme du tri rapide . . . . . . . . . . . . . . . . . . . 42
3.5.3. Implantation ......................... 43
3.5.4. Complexité .......................... 44
4. Tableaux et listes chaînées 45
4.1. Lestableaux.............................. 45
4.1.1. Dénition........................... 45
4.1.2. Propriétés........................... 45
4.1.3. Le crible d’Eratosthène . . . . . . . . . . . . . . . . . . . 46
4.2. Leslistes................................ 47
4.2.1. Dénition........................... 47
4.2.2. Propriétés........................... 47
4.2.3. Opération sur les listes . . . . . . . . . . . . . . . . . . . . 47
4.3. Variations sur les listes . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.1. Listes doublement chaînées . . . . . . . . . . . . . . . . . 50
4.3.2. Sentinelles en début ou fin de listes . . . . . . . . . . . . . 51
4.3.3. Listes circulaires . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.4. Conclusion .......................... 52
4.4. Pilesetles.............................. 53
4.4.1. Lespiles............................ 53
4.4.2. Lesles ............................ 55
4.5. Types de donnée abstraits . . . . . . . . . . . . . . . . . . . . . . 56
5. Arbres 59
5.1. Généralités sur les arbres . . . . . . . . . . . . . . . . . . . . . . . 59
5.1.1. Quelques définitions . . . . . . . . . . . . . . . . . . . . . 59
5.1.2. Propriété des arbres . . . . . . . . . . . . . . . . . . . . . 61
5.2. Les arbres binaires . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.2.1. Généralités et définitions . . . . . . . . . . . . . . . . . . . 61
5.2.2. Présentation des algorithmes de parcours des arbres binaires 63
5.3. Représentation des arbres généralisés . . . . . . . . . . . . . . . 65
5.3.1. Représentation d’un arbre dans deux tableaux . . . . . . . 66
5.3.2. Représentation d’un arbre quelconque dans un arbre binaire 66
4
Table des matières
6. Méthodes élémentaires de recherche 69
6.1. Recherche séquentielle . . . . . . . . . . . . . . . . . . . . . . . . 69
6.2. Recherche dichotomique . . . . . . . . . . . . . . . . . . . . . . . 71
6.2.1. Principe et implantation . . . . . . . . . . . . . . . . . . . 71
6.2.2. Complexité .......................... 71
6.2.3. Représentation . . . . . . . . . . . . . . . . . . . . . . . . 71
6.2.4. Recherche par interpolation . . . . . . . . . . . . . . . . . 72
6.2.5. Complexité .......................... 72
6.3. Recherche par arbre binaire . . . . . . . . . . . . . . . . . . . . . 72
6.3.1. Dénition........................... 72
6.3.2. Méthodes de recherche . . . . . . . . . . . . . . . . . . . . 73
6.3.3. Complexité .......................... 77
6.3.4. Arbre de recherche indirecte . . . . . . . . . . . . . . . . . 77
7. Arbres équilibrés 79
7.1. Arbres2-3-4.............................. 79
7.1.1. Dénition........................... 79
7.1.2. Scission de 4-nœuds . . . . . . . . . . . . . . . . . . . . . 79
7.1.3. Propriétés........................... 81
7.1.4. Conclusion .......................... 81
7.2. Arbresbicolores............................ 81
7.2.1. Miseenœuvre ........................ 81
7.2.2. Opérations sur les ARN . . . . . . . . . . . . . . . . . . . 82
7.2.3. Propriétés........................... 86
A. Conventions de codage 89
A.1.Opérateurs .............................. 89
A.2. Structures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . 89
A.3.Lestypes ............................... 90
A.4.Divers ................................. 90
B. John Von Neumann 91
C. Théorèmes de Herbrand 93
D. Fibonacci 95
E. Eratosthène 97
Références 100
5
1 / 100 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !