The collection
Choose a topic
Start anywhere — each guide stands on its own.
Appendix · Foundations
Mathematical Background
Review summations, sets, relations, probability, counting, and matrices—the tools behind algorithm analysis.
Open guideChapters 6–9 · Core algorithms
Sorting & Order Statistics
Watch Heapsort, Quicksort, Counting Sort, and Quickselect organize and select values.
Open guideChapters 10–13 · Core structures
Data Structures
Explore arrays, stacks, queues, linked lists, binary search trees, and red-black trees.
Open guidePart III · Advanced structures
Advanced Data Structures
See how data structures are augmented, and explore B-trees and disjoint-set forests.
Open guideParts IV–V · Design techniques
Design & Analysis Techniques
Explore dynamic programming, greedy methods, amortized analysis, and related structures.
Open guideDynamic programming · Patterns
Dynamic Programming
Build intuition with Fibonacci, longest common subsequence, and the contrast between exponential and linear work.
Open guideDynamic programming · Tables
1D & 2D Dynamic Programming
Compare recursive memoization with 1D Fibonacci tabulation and a 2D unique-paths table.
Open guideDynamic programming · Approaches
Recursive vs. Sequential
Compare top-down memoization and bottom-up tabulation, step by step.
Open guidePart VI · Chapters 20–25
Graph Algorithms
Trace graph traversal, spanning trees, shortest paths, maximum flow, and bipartite matching.
Open guidePart VII · Chapters 26–33
Selected Topics
Venture into parallel and online algorithms, matrices, linear programming, FFT, strings, and machine learning.
Open guide