4TABLE DES MATIÈRES
3.3.4 Résolutiondesrécurrences.................................... 25
3.3.5 Deuxième exemple : algorithme de Strassen pour la multiplication de matrices . . . . . . . . 25
4 Algorithmes de tri 29
4.1 Triparfusion ............................................... 29
4.1.1 Principe.............................................. 29
4.1.2 Algorithme............................................ 29
4.1.3 Complexité............................................ 30
4.2 Tripartas................................................. 31
4.2.1 Définitiond’untas ........................................ 31
4.2.2 Conservation de la structure de tas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2.3 Constructiond’untas....................................... 32
4.2.4 Algorithmedutripartas..................................... 33
4.3 Tri rapide (Quicksort)........................................... 33
4.3.1 Principe.............................................. 33
4.3.2 Algorithme............................................ 36
4.3.3 Complexité............................................ 37
5 Structures de données élémentaires 39
5.1 Introduction................................................ 39
5.2 Pilesetfiles................................................ 39
5.2.1 Piles................................................ 39
5.2.2 Files................................................ 40
5.3 Listeschaînées .............................................. 42
5.3.1 Définitions ............................................ 42
5.3.2 Algorithmes de manipulation des listes chaînées . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3.3 Comparaison entre tableaux et listes chaînées . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Programmation dynamique 47
6.1 Multiplication d’une suite de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 Éléments de programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.2.1 Sous-structureoptimale ..................................... 51
6.2.2 Sous-problèmes superposés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
6.2.3 Recensement........................................... 51
7 Algorithmes gloutons 53
7.1 Locationd’unevoiture .......................................... 53
7.2 Éléments de la stratégie gloutonne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
7.2.1 Propriétéduchoixglouton.................................... 54
7.2.2 Sous-structureoptimale ..................................... 54
7.3 Fondements théoriques des méthodes gloutonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
7.3.1 Matroïdes............................................. 55
7.3.2 Algorithmes gloutons sur un matroïde pondéré . . . . . . . . . . . . . . . . . . . . . . . . . 55
8 Graphes et arbres 57
8.1 Graphes.................................................. 57
8.2 Arbres................................................... 58
8.3 Parcours.................................................. 60
8.3.1 Parcoursdesarbres........................................ 60
8.3.2 Parcoursdesgraphes....................................... 61