Introduction to Algorithms
TODO: add authors
The leading introductory textbook and reference on algorithms.
This book looks extremely complete and big. So I decided to split it into 8
parts. Each part is chapter from book.
Contents /6
Preface /14
I Foundations /23
1 The Role of Algorithms in Computing /26
2 Getting Started /37
3 Growth of Functions /64
4 Divide-and-Conquer /86
5 Probabilistic Analysis and Randomized Algorithms /135
II Sorting and Order Statistics /167
6 Heapsort /172
7 Quicksort /191
8 Sorting in Linear Time /212
III Data Structures /249
10 Elementary Data Structures /253
11 Hash Tables /274
12 Binary Search Trees /307
13 Red-Black Trees /329
14 Augmenting Data Structures /360
IV Advanced Design and Analysis Techniques /377
15 Dynamic Programming /380
16 Greedy Algorithms /435
17 Amortized Analysis /472
V Advanced Data Structures /501
18 B-Trees /505
19 Fibonacci Heaps /526
20 van Emde Boas Trees /552
21 Data Structures for Disjoint Sets /582
VI Graph Algorithms /607
22 Elementary Graph Algorithms /610
23 Minimum Spanning Trees /645
24 Single-Source Shortest Paths /664
25 All-Pairs Shortest Paths /705
26 Maximum Flow /729
VII Selected Topics /789
27 Multithreaded Algorithms /793
28 Matrix Operations /834
29 Linear Programming /864
30 Polynomials and the FFT /919
31 Number-Theoretic Algorithms /947
32 String Matching /1006
33 Computational Geometry /1035
34 NP-Completeness /1069
35 Approximation Algorithms /1127
VIII Appendix: Mathematical Background /1163
A Summations /1166
B Sets, Etc. /1179
C Counting and Probability /1204
D Matrices /1238
Bibliography /1252
Index /1272