From divide & conquer to approximation algorithms — the curriculum covering randomised algorithms, network flow, linear programming, NP-completeness, and the theoretical toolkit for hard problems.
13+
Chapters
52+
Practice Problems
2
Languages
₹0
Cost
Inspired byMIT 6.046J · Design and Analysis of Algorithms · Spring 2015
Implementations inPython 3C++17— toggle between languages inside each chapter
What you will learn
🎲
Randomised Algorithms
Expected-time and with-high-probability analysis. Randomised Quicksort, skip lists, hashing — algorithms that use randomness to beat deterministic lower bounds.
🌊
Network Flow & LP
Max-flow min-cut theorem, Ford-Fulkerson, Edmonds-Karp. Linear programming duality, simplex method — how continuous optimisation underlies discrete algorithms.
📐
Hardness & Approximation
NP-completeness, reductions, why some problems resist polynomial algorithms — and approximation algorithms and FPT techniques for surviving NP-hard problems in practice.
⚠️
Prerequisites. You should be comfortable with asymptotic notation, graph algorithms (BFS/DFS/Dijkstra/Bellman-Ford), dynamic programming (SRT BOT), and basic complexity (P vs NP). If you have not completed Introduction to Algorithm, start there first →