everything.study
CS 161

Design and Analysis of Algorithms

3–5 credits · Undergraduate

Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching. Prerequisite: 106B or 106X; 103 or 103B; 109 or STATS 116.

Topics

Topics explicitly listed in official catalogue description

Winter 2017

Readings

  • Introduction to Algorithms
    Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein · 3rd · Main textbook
  • Algorithm Design
    Jon Kleinberg and Eva Tardos · Occasional reference
  • Algorithms
    Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazirani · Occasional reference
Sources