Design and Analysis of Algorithms
3 - 5 units
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: 103 or 103B; 109 or STATS 116.
Pranav Rajpurkar aspires to be the next caricature on the wall of CoHo. He enjoys concocting and drinking smoothies, and loves taking photos.
Brad Girardeau studies computer science at Stanford. When not thinking about cryptography, he can be found playing violin or running the dish.