This is the course materials for stanford CS161
you need python3 and jupyter
$ jupyter notebook # to run the jupyter server
All materials are owned by Stanford
- 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?