Computer Science | Algorithm Design, Analysis and Implementation (3 cr.)
580 | --


P: 463 and 470. 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.