This repository contains Coursera Stanford Algorithm Specialization implementations in Python.
Divide and Conquer Algorithms
Randomized Algorithms
Graph Search and Shortest Path
Data Structures
- Median Maintenance using heaps
- Brutal force implementation of Two Sum problem using hashset
- Fast implementation of Two Sum problem using sorted array and other tricks
Greedy Algorithms
- Schedule jobs using a greedy algorithm
- Prim's Minimum Spaninng Tree
- Greedy Clustering Algorithm
- Huffman Code
Dynamic Programming
- Maximum Weighted Independent Sets with dynamic programming
- Knapsack problem with bottom-up dynamic programming approach.
All-pairs Shortest Path
NP-Complete Problems