Design and Analysis of Algorithms
Fundamental principles of the design and analysis of algorithms. Asymptotic notation,
recurrences, randomized algorithms, sorting and selection, balanced binary search
trees, augmented data structures, advanced data structures, algorithms on strings,
graph algorithms, geometric algorithms, greedy algorithms, dynamic programming,
and NP completeness.