stanford-cs161
stanford-cs161 copied to clipboard
Unofficial repo for Design and Analysis of Algorithms, Stanford University, Fall 2017.
Design and Analysis of Algorithms, Stanford University, Fall 2017.
This is the course materials for stanford CS161
Installation
you need python3 and jupyter
$ jupyter notebook # to run the jupyter server
Note
All materials are owned by Stanford
Course content
Course syllabus
- Why are you here? And do you know how to multiply integers?
- MergeSort, Recurrences, and Asymptotics
- More recurrences and the master theorem
- The Substitution Method and the Selection problem
- Randomized Algorithms and QuickSort
- BucketSort, RadixSort, and Sorting Lower Bounds
- Binary Search Trees and Red-Black Trees
- Hashing!
- Graphs, BFS and DFS
- Finding Strongly Connected Components
- Dijkstra's Algorithm and Bellman-Ford
- Dynamic Programming and shortest paths: Bellman-Ford and Floyd-Warshall
- More dynamic programming
- Greedy Algorithms
- Minimum Spanning Trees
- Minimum Cuts and Karger's Algorithm
- Max Flow and the Ford-Fulkerson Algorithm
- What's next?
Sections
- Asymptotic analysis, recurrence relations, divide and conquer
- Randomized algorithms, selection
- Binary Trees: Rotation and Construction.
- Midterm review.
- Search, Strongly Connected Components.
- Bellman–Ford, Dijkstra.
- Dynamic Programming.
- Greedy Algorithms.
- Max Flow.