Skip to main content

Algorithm Design Manual Lecture Notes

#TitlePagesRemark
1Introduction to algorithms1-27tbd
2Asymptotic notation31-40tbd
3Logarithms and more41-58tbd
4Elementary data structures65-75tbd
5Dictionary data structures76-92tbd
6Hashing93-102tbd
7Applications of sorting109-114tbd
8Heapsort/Priority Queues115-126tbd
9Mergesort/Quicksort/Binsort127-151tbd
10Data structures for graphs197-211tbd
11Breadth-first search212-220tbd
12Topological sort/connectivity221-234tbd
13Minimum spanning trees243-256tbd
14Shortest paths257-266tbd
15Exploiting graph algorithms267-275tbd
16Combinatorial search281-288tbd
17Program optimization289-302tbd
18Elements of dynamic programming307-325tbd
19Examples of dynamic programming326-336tbd
20Limitations of dynamic programming337-344tbd
21Dynamic programming reviewtbd
22Reductions355-360tbd
23Easy reductions361-368tbd
24Harder reductions369-372tbd
25The NP-completeness challenge373-382tbd