All works are original and written by Albert Z. Guo.
DO NOT COPY for personal use in Coursera.
Module 1 contains:
- Karatsuba's algorithm (for fast large number multiplication e.g. 64 digits times 64 digits)
- Inversions calculation
- Quicksort algorithm
- Karger's algorithm (a randomized algorithm for computing the minimum cuts of a connected graph)
Module 2 contains:
- Dijkstra's algorithm (for finding shortest paths in a graph with positive only edge weights)
- Running medians calculation
- Two-sum calculation
- Kosaraju's algorithm (for identifying strongly connected components in a graph)
Module 3 contains:
- Clustering algorithms (with speed optimization using Union-Find structure on a large graph)
- Huffman encoding
- Knapsack problem optimal value calculations (with speed optimization using memoization for a large knapsack)
- Maximum-weight independent set calculation
- Job scheduling optimization algorithm
Module 4 contains:
- Floyd-Warshall algorithm (for finding shortest paths in a graph with positive or negative edge weights, but with no negative cycles)
- Traveling salesman problem heuristic approximation (for finding the shortest route that visits each node in a graph)
- Traveling salesman problem without approximation (for finding the shortest route that visits each node in a graph)
- 2 satisfiability identification algorithm