Universit´e Libre de Bruxelles
Facult´e des Sciences
epartement d’Informatique
Arbres binaires de recherche
optimaux et quasi-optimaux
emoire pr´esene par Gabriel Kalyon
en vue de l’obtention du grade de
Licenci´e en Informatique.
Ann´ee acad´emique 2005-2006.
Table des mati`eres
1 Introduction 5
I Fondements et d´efinitions 7
2 Arbres binaires et complexit´e8
2.1 Arbresbinaires .......................... 8
2.1.1 D´enitions......................... 8
2.1.2 Profondeur d’un nœud . . . . . . . . . . . . . . . . . . 9
2.1.3 Hauteur d’un nœud . . . . . . . . . . . . . . . . . . . . 9
2.1.4 Rotations ......................... 9
2.2 Arbres binaires de recherche . . . . . . . . . . . . . . . . . . . 11
2.2.1 Mod`ele........................... 12
2.2.2 Classes d’arbres binaires de recherche . . . . . . . . . . 13
2.3 Performances asymptotiques . . . . . . . . . . . . . . . . . . . 14
2.3.1 Notation O(.) . . . . . . . . . . . . . . . . . . . . . . . 15
2.3.2 Notation (.) ....................... 15
2.3.3 Notation Θ(.)....................... 15
2.3.4 Lien entre les notations asymptotiques . . . . . . . . . 15
2.4 Complexit´e ............................ 16
2.4.1 Complexit´e au pire cas . . . . . . . . . . . . . . . . . . 16
2.4.2 Complexit´e moyenne . . . . . . . . . . . . . . . . . . . 16
2.4.3 Complexit´e amortie . . . . . . . . . . . . . . . . . . . . 17
2.5 Conclusion............................. 18
3 Propri´et´es des arbres binaires de recherche 19
3.1 Relations entre les propri´et´es . . . . . . . . . . . . . . . . . . . 19
3.2 Staticnger............................ 19
3.3 Optimalit´e statique . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4 Workingset ............................ 21
3.5 Dynamicnger .......................... 22
1
3.6 Uni´ee............................... 23
3.7 Optimalit´e dynamique . . . . . . . . . . . . . . . . . . . . . . 24
3.8 Conclusion............................. 25
II Arbres binaires de recherche particuliers 26
4 Arbres Binaires de Recherche Optimaux 27
4.1 G´en´eralit´es ............................ 27
4.2 Algorithme exhaustif . . . . . . . . . . . . . . . . . . . . . . . 29
4.3 Algorithme de Knuth . . . . . . . . . . . . . . . . . . . . . . . 29
4.4 Conclusion............................. 31
5 Arbres binaires de recherche ´equilibr´es 32
5.1 D´enition ............................. 32
5.2 Arbres rouges-noirs . . . . . . . . . . . . . . . . . . . . . . . . 32
5.2.1 D´enition ......................... 33
5.2.2 Recherche ......................... 33
5.2.3 Insertion.......................... 33
5.2.4 Successeur......................... 34
5.2.5 Pr´ed´ecesseur . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.6 Analyse des performances . . . . . . . . . . . . . . . . 35
5.3 Conclusion............................. 36
6 Arbres binaires de recherche auto-ajustables 38
6.1 D´enition ............................. 38
6.2 Splaytrees............................. 38
6.2.1 Splaying.......................... 39
6.2.2 Recherche ......................... 39
6.2.3 Insertion.......................... 39
6.2.4 Suppression . . . . . . . . . . . . . . . . . . . . . . . . 39
6.2.5 Analyse des performances . . . . . . . . . . . . . . . . 40
6.3 Comparaisons........................... 44
6.4 Conclusion............................. 45
III Optimalit´e dynamique 46
7 Bornes inf´erieures sur le coˆut des arbres binaires de recherche 47
7.1 Mod`ele............................... 47
7.2 La borne inf´erieure de couverture de rectangle . . . . . . . . . 48
7.3 Applications de la borne inf´erieure de couverture de rectangle 53
2
7.3.1 La borne inf´erieure d’entrelacement . . . . . . . . . . . 54
7.3.2 La seconde borne de Wilber . . . . . . . . . . . . . . . 56
7.4 Conclusion............................. 59
8 Tango 60
8.1 Structures de donn´ees . . . . . . . . . . . . . . . . . . . . . . 60
8.2 Algorithme de l’arbre de ef´erence . . . . . . . . . . . . . . . . 61
8.3 Arbres auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . 66
8.3.1 D´enition ......................... 66
8.3.2 Concat´enation . . . . . . . . . . . . . . . . . . . . . . . 67
8.3.3 ´
Eclatement ........................ 67
8.3.4 Cutting .......................... 69
8.3.5 Joining........................... 72
8.4 Algorithme Tango . . . . . . . . . . . . . . . . . . . . . . . . . 75
8.5 Analyse des performances . . . . . . . . . . . . . . . . . . . . 77
8.6 Conclusion............................. 81
9 Multi-splay tree 82
9.1 Structures de donn´ees . . . . . . . . . . . . . . . . . . . . . . 82
9.2 Algorithmes............................ 83
9.2.1 Algorithme de l’arbre de ef´erence . . . . . . . . . . . . 83
9.2.2 Algorithme multi-splay tree . . . . . . . . . . . . . . . 83
9.3 Analyse des performances . . . . . . . . . . . . . . . . . . . . 89
9.3.1 Fonction potentiel . . . . . . . . . . . . . . . . . . . . . 90
9.3.2 Access Lemma G´en´eralis´e . . . . . . . . . . . . . . . . 90
9.3.3 Multi-Splay Access Lemma . . . . . . . . . . . . . . . . 91
9.3.4 Propri´et´es . . . . . . . . . . . . . . . . . . . . . . . . . 98
9.4 Conclusion.............................100
10 Optimalit´e de recherche dynamique 102
10.1D´enition .............................102
10.2Int´erˆet...............................102
10.3Structure .............................103
10.4Conclusion.............................108
11 Exp´erimentations 109
11.1Jeuxdetests ...........................109
11.2 Distribution al´eatoire . . . . . . . . . . . . . . . . . . . . . . . 110
11.3 Distribution working set . . . . . . . . . . . . . . . . . . . . . 111
11.4Conclusion.............................112
3
12 Conclusion 114
13 Annexe 116
13.1 Impl´ementation . . . . . . . . . . . . . . . . . . . . . . . . . . 116
13.1.1 Multi-splay trees . . . . . . . . . . . . . . . . . . . . . 116
13.1.2 Splay trees . . . . . . . . . . . . . . . . . . . . . . . . . 137
13.1.3 Arbres rouges-noirs . . . . . . . . . . . . . . . . . . . . 148
13.2Jeuxdetests ...........................158
4
1 / 168 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 !