Algo_stanford
This repository contains Coursera Stanford Algorithm Specialization implementations in Python.
Course 1: Divide and Conquer, Sorting and Searching, and Randomized Algorithms
Divide and Conquer Algorithms
Randomized Algorithms
Course 2: Graph Search, Shortest Path and Data Structures
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
Course 3: Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming
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.
Course 4: Shortest Paths Revisited, NP-Complete Problems and What To Do About Them
All-pairs Shortest Path
NP-Complete Problems