INFO-F-203 : Algorithmique 2
Bernard Fortz
2011-2012
Une grande partie de ce document est le fruit du travail d’Olivier Markowitch, qui m’a
généreusement fourni toutes ses sources. Je l’en remercie énormément, ce partage de res-
sources m’ayant permis de me concentrer sur les nouveaux chapitres et quelques modifica-
tions et ajouts mineurs au texte.
Bernard Fortz
Table des matières
1 Introduction aux tables de hachage 1
1.1 Introduction aux tables de hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Introduction..................................... 1
1.1.2 Tablesàaccèsdirect ................................ 1
1.1.3 Tablesdehachage ................................. 2
1.1.4 Fonctionsdehachage................................ 5
1.1.5 Adressageouvert.................................. 6
2 Arbres binaires de recherche équilibrés 10
2.1 Arbres binaires de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.1 Introduction..................................... 10
2.1.2 Définition et propriétés des arbres binaires de recherche . . . . . . . . . . . . . 10
2.1.3 Recherche dans un arbre binaire de recherche . . . . . . . . . . . . . . . . . . . 12
2.1.4 Insertion et suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Arbresrouges-noirs..................................... 16
2.2.1 Propriétés des arbres rouges-noirs . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.2 Rotations ...................................... 17
2.2.3 Insertion ...................................... 18
2.2.4 Suppression..................................... 19
3 Les graphes 21
3.1 Introduction......................................... 21
3.2 Graphes,arcsetarêtes ................................... 23
3.3 Miseenœuvre........................................ 24
3.4 Accessibilité......................................... 27
3.4.1 Roy-Warshall.................................... 28
3.5 Parcoursdegraphes..................................... 29
4 Cycles et connexité 37
Table des matières ii
4.1 Dénitions.......................................... 37
4.2 Recherche des composantes connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Ponts et points d’articulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 Détectiondescycles .................................... 44
4.5 Recherche des composantes fortement connexes . . . . . . . . . . . . . . . . . . . . . . 46
5 Le tri topologique 50
5.1 Dénition .......................................... 50
5.2 Implémentation....................................... 51
5.3 Interprétations........................................ 54
5.4 Tritopologiqueinversé ................................... 55
6 Les arbres sous-tendants minimaux 57
6.1 Introduction......................................... 57
6.2 AlgorithmedePrim..................................... 58
6.3 AlgorithmedeKruskal ................................... 62
7 Les plus courts chemins 69
7.1 Introduction......................................... 69
7.2 Plus courts chemins dans un digraphe . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
7.3 Tous les plus courts chemins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.4 Plus courts chemins dans un DAG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.5 Digraphes ayant des poids négatifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.6 Dernièresremarques .................................... 81
8 Algorithmes génériques sur les graphes 82
8.1 Typesdalgorithmes..................................... 82
8.2 Algorithmesgloutons.................................... 82
8.2.1 Parcoursenlargeur................................. 84
8.2.2 Parcours en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.2.3 Arbre sous-tendant minimum . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
8.2.4 Pluscourtchemin.................................. 86
8.2.5 Conclusion ..................................... 87
Chapitre 1
Introduction aux tables de hachage
1.1 Introduction aux tables de hachage
1.1.1 Introduction
De nombreuses applications ont besoin d’un ensemble dynamique qui permet les opérations INSERT,
DELETE, SEARCH.
Le problème
Table de symboles Scontenant nenregistrements.
Opérations sur S:
– INSERT(S,x)
– DELETE(S,x)
– SEARCH(S,x)
Comment organiser la structure de données S?
1.1.2 Tables à accès direct
Idée
Supposons que les clés appartiennent à l’ensemble U⊆ {0,1, . . . , m 1}et qu’elles sont toutes
distinctes.
Tableau T[0..m 1] :
T[k] = xsi xSet key[x] = k,
NULL sinon .
Implémentation
Di r e ct AddressSearch (T , k ) {
r e t u r n T[ k ] ;
}
Di r e ct AddressI n s e r t (T , x ) {
T[ x . key ] = x ;
}
1 / 92 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 !