MA 512: Data Structures and Algorithms or MA 252:Design and Analysis of Algorithms or Equivalent Course
Review of design techniques: greedy method, divide-and-conquer, dynamic programming with advanced applications and/or emphasis on their theoretical foundations; Review of amortized analysis; Data structure: B-trees, Fibonacci heaps with application to Prim's MST algorithm, interval trees, data structures for disjoint sets; Algorithms for maximum flow and its applications; String matching; Approximation Algorithms: Set cover, max-SAT, knapsack, bin packing, scheduling, traveling salesman tour; Introduction to Randomized Algorithms; Geometric Algorithms: convex hull algorithms, and its lower bound, line segment intersection, closest pair points.
Texts:
References: