Classes include:
-
Divide and Conquer, Sorting and Searching, and Randomized Algorithms
- Assignment 1: Integer Multiplication
- Assignment 2: Inversions
- Assignment 3: Quicksort
- Assignment 4: Minimum Cut
-
Graph Search, Shortest Paths, and Data Structures
- Assignment 1: Strongly Connected Components
- Assignment 2: Dijkstra's Shortest Path
- Assignment 3: Median Maintenance
- Assignment 4: Two Sum
-
Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
- Assignment 1: Scheduling and Prim's MST Algorithm
- Assignment 2: K-Clustering
- Assignment 3: Huffman Codes and Max Weight Independent Sets
- Assignment 4: Knapsack
Each assignment contains a run_tests.py
that runs the created algorithm
against a number of example test cases.