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. Homework Homework 1 Homework 2 Homework 3 Homework 4 Homework 5 Homework 6 Homework 7 Exams Exams