This repo contains my submitted homeworks for the Stanford Algorithms (online) course offered through coursera (https://www.coursera.org/specializations/algorithms). All homeworks were completed in Python to get a high level understanding of the content.
A very helpful class to gain understanding around algorithms, data structures, and how to think about approaching computer science problems.
Module1 - Divide and Conquer, Sorting and Searching, and Randomized Algorithms
- Big O notation
- Multiplication (Karatsuba)
- Karger Min-Cut Algorithm
- Merge Sort
- Quick Sort
- Graph theory
Module2 - Graph Search, Shortest Paths, and Data Structures
- Breadth-first search
- Depth-first search
- Strongly Connected Components
- Topological Ordering
- Dijkstra Algorithm
- Heap data structure
- Binary trees, red/black trees
- Median Maintenance (via heap operations)
- Hash tables, operations, and methods for creating unique hash functions
- Two Sum Problem