| A.1 Basics A.2 Algebra A.3 Real Analysis |
A.4 Sums A.5 Probability |
| B.1 The Sum Rule B.2 The Product Rule |
B.3 Sample Algorithm Analyses B.4 Algorithms That Call Subroutines |
| C.1 Simple Recurrences C.2 Recursive Algorithms |
C.3 A Tricky Example C.4 A Long Example |
| 1.1 - Problems 1.2 - Models 1.3 - Algorithms 1.4 - Analysis 1.5 - Now What? |
1.6 - Napkin Mathematics 1.7 - Growth Rates 1.8 - Back to Reality 1.9 - Hard Problems 1.10 - Coda - The Continent of Analysis |
| 6.1 - Exponential Numbers 6.2 - Common Numbers 6.3 - Prime Numbers 6.4 - Secret Numbers |
6.5 - Authentic Numbers 6.6 - Random Numbers 6.8 - Coda -- Straight On Till |
| 2.1 - Linear Search 2.2 - Jump Search 2.3 - Binary Search |
2.4 - Changing the Model 2.5 - Coda - Apples and Oranges |
| 3.1 - Rankings 3.2 - Finding the Best 3.3 - Finding the Second Best 3.4 - Finding the Best and the Worst |
3.5 - Finding the ith Best 3.6 - The Partition Problem 3.7 - Changing the Model 3.8 - Coda - Artists and Artisans |
| 4.1 - Strategies 4.2 - Swap Sorts 4.3 - Insert Sorts 4.4 - Select Sorts 4.5 - Merge Sorts |
4.6 - Split Sorts 4.7 - Lower Bound on Sorting 4.8 - Optimal Sorting 4.9 - Changing the Model 4.10 - Coda - Sorting Out |
| 5.1 - Structures 5.2 - Queues and Partitions 5.3 - Connecting Telephones 5.4 - Partially Sorted |
5.5 - Exploring Graphs 5.6 - Broadcasting Information 5.7 - Distributing Flow 5.8 - Coda -- Graph Therapy |
| 7.1 - Remembrance of Times Past 7.2 - Models of Computation 7.3 - Turing Machines 7.4 - Birth of NP-Completeness 7.5 - Working out the Hierarchy |
7.6 - Solving Hard Problems 7.7 - What is an Algorithm? 7.8 - What is a Proof? 7.9 - Coda -- The End of the Beginning |