algorithms-specialization-notebook
My notes and assignments for Stanfords "Algorithms Specialization" class on Coursera
There are 4 courses (quarters from the corresponding university course). Each have 4 week-long sections
Course 1 - Divide and Conquer, Sorting and Searching, and Randomized Algorithms
Merge Sort
Karatsuba Multiplication
Inversion Counter
Strassen's Subcubic Matrix Multiplication
Quicksort
Randomized Selection
Randomized Contraction
Course 2 - Graph Search, Shortest Paths, and Data Structures
Breadth First Search
Undirected Connectivity
Kosaraju Two Pass and Depth First Search
Dijkstra's Shortest Path
Median Maintenance
Two Sum via Hash Map
Course 3 - Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
Job Scheduling and minimize weighted sum of completion times
Prim's minimum spanning tree
Max-Spacing k-clusterings via kruskal's algorithm
Huffman optimal binary prefix-free encoding
Max weight independent set of a path graph
Knapsack problem
Course 4 - Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
Floyd-Warshall
Traveling Salesman Problem