This note explains the following topics: Growth of functions, Basic
data structures, Sorting and Selection, Fundamental techniques, Dynamic
programming and Graphs, Graph algorithms, NP-Completeness and approximation
algorithms, Randomized Algorithms.