Description
This course teaches students to design and analyze various classes of algorithms. The design techniques including divide-and-conquer, greedy, and dynamic programming will be introduced. Topics include analyzing algorithms and problems, searching and sorting, selection, lower bounds, graph algorithms, introduction to NP problems, and approximation algorithms. Prerequisite: CMP 311.