Table of contents
Source[9]
I Foundations
1 The Role of Algorithms in Computing
2 Getting Started
3 Characterizing Running Times
4 Divide-and-Conquer
5 Probabilistic Analysis and Randomized Algorithms
II Sorting and Order Statistics
6 Heapsort
7 Quicksort
8 Sorting in Linear Time
9 Medians and Order Statistics
III Data Structures
10 Elementary Data Structures
11 Hash Tables
12 Binary Search Trees
13 Red-Black Trees
IV Advanced Design and Analysis Techniques
14 Dynamic Programming
15 Greedy Algorithms
16 Amortized Analysis
V Advanced Data Structures
17 Augmenting Data Structures
18 B-Trees
19 Data Structures for Disjoint Sets
VI Graph Algorithms
20 Elementary Graph Algorithms
21 Minimum Spanning Trees
22 Single-Source Shortest Paths
23 All-Pairs Shortest Paths
24 Maximum Flow
25 Matching in Bipartite Graphs
VII Selected Topics
26 Parallel Algorithms
27 Online Algorithms
28 Matrix Operations
29 Linear Programming
30 Polynomials and the FFT
31 Number-Theoretic Algorithms
32 String Matching
33 Machine-Learning Algorithms
34 NP-Completeness
35 Approximation Algorithms
VIII Appendix: Mathematical Background
A Summations
B Sets, Etc.
C Counting and Probability
D Matrices