Algorithm Design, Analysis, and Implementation

CSCI 58000

3

P: 463 and 470.


Spring


Basic techniques for designing and analyzing algorithms: dynamic programming, divide-and-conquer, balancing, upper and lower bounds on time and space costs, worst case and expected cost measures. A selection of applications such as disjoint set union/find, graph algorithms, search trees, pattern matching. The polynomial complexity classes P, NP, and co-NP; intractable problems.