This repository will include all my code implementations in algorithms and data structures from MIT's introduction to algorithms course on MIT Open Course Ware.
- Lecture 1 – Algorithmic Thinking, Peak Finding
- Lecture 2 – Models of Computation, Python Cost Model, Document Distance
- Lecture 3 – Insertion Sort, Merge Sort
- Lecture 4 – Heaps and Heap Sort
- Lecture 5 – Binary Search Trees, BST Sort
- Lecture 6 – AVL Trees, AVL Sort
- Lecture 7 – Counting Sort, Radix Sort, Lower Bounds for Sorting and Searching
- Lecture 8 – Hashing with Chaining
- Lecture 9 – Table Doubling, Karp-Rabin
- Lecture 10 – Open Addressing, Cryptographic Hashing
- Lecture 11 – Integer Arithmetic, Karatsuba Multiplication
- Lecture 12 – Square Roots, Newton's Method
- Lecture 13 – Breadth-First Search (BFS)
- Lecture 14 – Depth-First Search (DFS), Topological Sorting
- Lecture 15 – Single-Source Shortest Paths Problem
- Lecture 16 – Dijkstra
- Lecture 17 – Bellman-Ford
- Lecture 18 – Speeding up Dijkstra
- Lecture 19 – Memoization, Subproblems, Guessing, Bottom-up; Fibonacci, Shortest Paths
- Lecture 20 – Parent Pointers; Text Justification, Perfect-Information Blackjack
- Lecture 21 – String Subproblems, Pseudopolynomial Time; Parenthesization, Edit Distance, Knapsack
- Lecture 22 – Two Kinds of Guessing; Piano/Guitar Fingering, Tetris Training, Super Mario Bros.
- Lecture 23 – Computational Complexity
- Lecture 24 – Algorithms Research Topics