Upload
vunhi
View
223
Download
4
Embed Size (px)
Citation preview
INTRODUCTION LALGORITHMIQUE
Cours et exercices
Thomas Cormen
Professeur associ dinformatique au Darmouth College
Charles Leiserson
Professeur dinformatique au MIT
Ronald Rivest
Professeur dinformatique au MIT
Clifford Stein
Professeur associ au gnie industrielet de recherche oprationelle luniversit de Columbia
Prface de
Philippe chrtienne , Claire Hanen, Alix Munier, Christophe Picouleau
1
re
dition traduite de lamricain par Xavier Cazin
Complments et mises jour de la 2
e
dition traduits par Georges-Louis Kocher
2
e
dition
0 lim Page I Jeudi, 22. juin 2006 5:03 17
Ldition originale de ce livre a t publie aux tats-Unis par The MIT Press, Cambridge,Massachusetts, sous le titre
Introduction to Algorithms
, second edition.
The Massachusetts Institute of Technology, 2001First edition 1990
Dunod, Paris, 1994, pour la 1
re
dition Dunod, Paris, 2004, pour la prsente dition
ISBN 2 10 003922 9
Ce pictogramme mrite une explication.Son objet est dalerter le lecteur sur la menace que reprsente pour lavenirde lcrit, particulirement dansle domaine de ldition tech-nique et universitaire, le dvelop-pement massif du photo-copillage.
Le Code de la proprit intellectuelle du 1er juillet 1992interdit en effet expressment laphotocopie usage collectifsans autorisation des ayants droit. Or,cette pratique sest gnralise dans les
tablissements denseignement suprieur,provoquant une baisse brutale des achatsde livres et de revues, au point que la
possibilit mme pour les auteursde crer des uvres nouvelles etde les faire diter correctementest aujourdhui menace.
Nous rappelons donc quetoute reproduction, partielle outotale, de la prsente publicationest interdite sans autorisation duCentre franais dexploitation du
droit de copie (CFC, 20 rue des Grands-Augustins, 75006 Paris).
! " # $ % $
% $& ' ( ) '& ' *$ % ' & $& &
+ % , & $ %
-
0 lim Page II Jeudi, 22. juin 2006 5:03 17
Table des matires
PRFACE LDITION FRANAISE XVII
PRFACE XXI
PARTIE 1 INTRODUCTION
CHAPITRE 1 RLE DES ALGORITHMES EN INFORMATIQUE 31.1 Algorithmes 3Exercices 8
1.2 Algorithmes en tant que technologie 8Exercices 11
PROBLMES 11
CHAPITRE 2 PREMIERS PAS 132.1 Tri par insertion 13Exercices 18
2.2 Analyse des algorithmes 19Exercices 25
2.3 Conception des algorithmes 25Exercices 34
PROBLMES 35
CHAPITRE 3 CROISSANCE DES FONCTIONS 393.1 Notation asymptotique 40Exercices 48
3.2 Notations standard et fonctions classiques 48Exercices 54
PROBLMES 55c D
unod
L
aph
otoc
opie
non
auto
ris
ees
tun
dlit
IV Table des matires
CHAPITRE 4 RCURRENCES 59
4.1 Mthode de substitution 60Exercices 64
4.2 Mthode de larbre rcursif 64Exercices 68
4.3 Mthode gnrale 69Exercices 71
4.4 Dmonstration du thorme gnral 72Exercices 80
PROBLMES 80
CHAPITRE 5 ANALYSE PROBABILISTE ET ALGORITHMES RANDOMISS 87
5.1 Le problme de lembauche 87Exercices 90
5.2 Variables indicatrices 91Exercices 94
5.3 Algorithmes randomiss 95Exercices 100
5.4 Analyse probabiliste et autres emplois des variables indicatrices 101Exercices 112
PROBLMES 113
PARTIE 2 TRI ET RANGS
CHAPITRE 6 TRI PAR TAS 121
6.1 Tas 121Exercices 123
6.2 Conservation de la structure de tas 124Exercices 125
6.3 Construction dun tas 126Exercices 128
6.4 Algorithme du tri par tas 129Exercices 129
6.5 Files de priorit 131Exercices 134
PROBLMES 135
Table des matires V
CHAPITRE 7 TRI RAPIDE 139
7.1 Description du tri rapide 139Exercices 142
7.2 Performances du tri rapide 143Exercices 146
7.3 Versions randomises du tri rapide 147Exercices 148
7.4 Analyse du tri rapide 148Exercices 152
PROBLMES 153
CHAPITRE 8 TRI EN TEMPS LINAIRE 159
8.1 Minorants pour le tri 159Exercices 161
8.2 Tri par dnombrement 162Exercices 164
8.3 Tri par base 164Exercices 167
8.4 Tri par paquets 167Exercices 171
PROBLMES 171
CHAPITRE 9 MDIANS ET RANGS 177
9.1 Minimum et maximum 178Exercices 179
9.2 Slection en temps moyen linaire 179Exercices 183
9.3 Slection en temps linaire dans le cas le plus dfavorable 183Exercices 186
PROBLMES 187
PARTIE 3 STRUCTURES DE DONNES
CHAPITRE 10 STRUCTURES DE DONNES LMENTAIRES 195
10.1 Piles et files 195Exercices 197c D
unod
L
aph
otoc
opie
non
auto
ris
ees
tun
dlit
VI Table des matires
10.2 Listes chanes 199Exercices 203
10.3 Implmentation des pointeurs et des objets 203Exercices 207
10.4 Reprsentation des arborescences 208Exercices 209
PROBLMES 211
CHAPITRE 11 TABLES DE HACHAGE 215
11.1 Tables adressage direct 216Exercices 217
11.2 Tables de hachage 218Exercices 222
11.3 Fonctions de hachage 223Exercices 230
11.4 Adressage ouvert 231Exercices 238
11.5 Hachage parfait 238Exercices 242
PROBLMES 243
CHAPITRE 12 ARBRES BINAIRES DE RECHERCHE 247
12.1 Quest-ce quun arbre binaire de recherche ? 248Exercices 249
12.2 Requte dans un arbre binaire de recherche 250Exercices 253
12.3 Insertion et suppression 254Exercices 257
12.4 Arbres binaires de recherche construits alatoirement 258Exercices 261
PROBLMES 262
CHAPITRE 13 ARBRES ROUGE-NOIR 267
13.1 Proprits des arbres rouge-noir 267Exercices 270
13.2 Rotation 271Exercices 272
Table des matires VII
13.3 Insertion 273Exercices 280
13.4 Suppression 281Exercices 286
PROBLMES 287
CHAPITRE 14 EXTENSION DUNE STRUCTURE DE DONNES 295
14.1 Rangs dynamiques 296Exercices 300
14.2 Comment tendre une structure de donnes 301Exercices 303
14.3 Arbres dintervalles 304Exercices 309
PROBLMES 310
PARTIE 4 TECHNIQUES AVANCES DE CONCEPTION ET DANALYSE
CHAPITRE 15 PROGRAMMATION DYNAMIQUE 315
15.1 Ordonnancement de chanes de montage 316Exercices 322
15.2 Multiplications matricielles enchanes 323Exercices 330
15.3 lments de la programmation dynamique 330Exercices 341
15.4 Plus longue sous-squence commune 341Exercices 347
15.5 Arbres binaires de recherche optimaux 347Exercices 354
PROBLMES 354
CHAPITRE 16 ALGORITHMES GLOUTONS 361
16.1 Un problme de choix dactivits 362Exercices 370
16.2 lments de la stratgie gloutonne 370Exercices 375
16.3 Codages de Huffman 376Exercices 382c D
unod
L
aph
otoc
opie
non
auto
ris
ees
tun
dlit
VIII Table des matires
16.4 Fondements thoriquesdes mthodes gloutonnes 383
Exercices 388
16.5 Un problme dordonnancement de tches 389Exercices 392
PROBLMES 392
CHAPITRE 17 ANALYSE AMORTIE 395
17.1 Mthode de lagrgat 396Exercices 400
17.2 Mthode comptable 400Exercices 402
17.3 Mthode du potentiel 402Exercices 405
17.4 Tables dynamiques 406Exercices 414
PROBLMES 415
PARTIE 5 STRUCTURES DE DONNES AVANCES
CHAPITRE 18 B-ARBRES 425
18.1 Dfinition dun B-arbre 429Exercices 431
18.2 Oprations fondamentales sur les B-arbres 432Exercices 437
18.3 Suppression dune cl dans un B-arbre 439Exercices 442
PROBLMES 442
CHAPITRE 19 TAS BINOMIAUX 445
19.1 Arbres binomiaux et tas binomiaux 447Exercices 450
19.2 Oprations sur les tas binomiaux 451Exercices 461
PROBLMES 462
Table des matires IX
CHAPITRE 20 TAS DE FIBONACCI 465
20.1 Structure des tas de Fibonacci 466
20.2 Oprations sur les tas fusionnables 469Exercices 477
20.3 Diminution dune cl et suppression dun nud 478Exercices 481
20.4 Borne pour le degr maximal 482Exercices 484
PROBLMES 484
CHAPITRE 21 STRUCTURES DE DONNES POUR ENSEMBLES DISJOINTS 487
21.1 Oprations sur les ensembles disjoints 487Exercices 490
21.2 Reprsentation densembles disjoints par des listes chanes 490Exercices 493
21.3 Forts densembles disjoints 494Exercices 497
21.4 Analyse de lunion par rang avec compression de chemin 498Exercices 505
PROBLMES 506
PARTIE 6 ALGORITHMES POUR LES GRAPHES
CHAPITRE 22 ALGORITHMES LMENTAIRES POUR LES GRAPHES 513
22.1 Reprsentation des graphes 514Exercices 516
22.2 Parcours en largeur 517Exercices 524
22.3 Parcours en profondeur 525Exercices 532
22.4 Tri topologique 534Exercices 536
22.5 Composantes fortement connexes 536Exercices 541
PROBLMES 542c D
unod
L
aph
otoc
opie
non
auto
ris
ees
tun
dlit
X Table des matires
CHAPITRE 23 ARBRES COUVRANTS DE POIDS MINIMUM 54523.1 Construction dun arbre couvrant minimum 546Exercices 550
23.2 Algorithmes de Kruskal et de Prim 551Exercices 556
PROBLMES 558
CHAPITRE 24 PLUS COURTS CHEMINS ORIGINE UNIQUE 56324.1 Algorithme de Bellman-Ford 571Exercices 574
24.2 Plus courts chemins origine unique dans les graphes orients sans circuit 575Exercices 577
24.3 Algorithme de Dijkstra 577Exercices 582
24.4 Contraintes de potentiel et plus courts chemins 583Exercices 587
24.5 Dmonstrations des proprits de plus court chemin 589Exercices 594
PROBLMES 595
CHAPITRE 25 PLUS COURTS CHEMINS POUR TOUT COUPLE DE SOMMETS 60125.1 Plus courts chemins et multiplic