Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, a rigorous proof, or a deeper exercise lane.

Source Roles

SourceRoleWhy it is here
The Algorithm Design Manual (Skeena)Primary teaching sourceProblem-first framing; excellent for modeling, algorithm selection, and war stories
Introduction to Algorithms (CLRS)Deep-dive referenceCanonical proofs of correctness and tight running-time analyses
Algorithms (Sedgewick)Implementation referenceClear code-level views of BFS, DFS, MST, shortest paths, flow, matching
Competitive Programming (Halim)Applied/problem referenceTricks, variants, and reductions most useful under pressure
Grokking AlgorithmsGentle introUse only when a concept feels unreachable; it sacrifices depth for intuition

Read Only If Stuck

Cluster 1: Graph Models and Representations

Cluster 2: Graph Traversals

Cluster 3: Shortest Paths

Cluster 4: Minimum Spanning Trees

Cluster 5: Network Flow and Matching

Optional Deep Dive

Concept-to-Source Map

Each primary concept has one preferred source when you are stuck and one secondary source for a different perspective.

Primary conceptBest source if stuckWhy this source
What a graph isADM: Flavors of GraphsBest enumeration of graph flavors (directed, weighted, simple, etc.) with immediate examples
Adjacency list vs adjacency matrixCLRS 20.1: Representations of GraphsClean tradeoff table between the two representations
Graph problem recognitionADM: Design Graphs, Not AlgorithmsBest short essay on reframing problems as graph problems
BFS as level-by-level traversalCLRS 20.2: Breadth-First SearchCanonical pseudocode plus correctness proof for unweighted shortest paths
DFS with discovery/finish timesCLRS 20.3: Depth-First SearchDefinitive treatment of edge taxonomy and parenthesis structure
Strongly connected componentsCLRS 20.5: Strongly Connected ComponentsClearest presentation of Kosaraju with a proof
Topological sortCLRS 20.4: Topological SortDirect link between DFS finish times and a valid topological order
Shortest path problem variantsADM: Dijkstra's AlgorithmProblem-first framing of which variant fits which scenario
Dijkstra's algorithmCLRS 22.3: Dijkstra's AlgorithmCorrectness proof plus full running-time analysis across PQ options
Bellman-Ford and negative edgesCLRS 22.1: Bellman-Ford AlgorithmBest account of why `
MST cut and cycle propertiesCLRS 21.1: Growing a Minimum Spanning TreeGeneric-MST framing and the cut-property proof Kruskal and Prim both use
Kruskal with union-findADM: Union-Find Data StructureUnion by rank and path compression with a running-time discussion in plain language
Prim with priority queueCLRS 21.2: Kruskal and PrimTightest presentation of Prim alongside Kruskal for direct comparison
Max flow and Ford-FulkersonCLRS 24.2: Ford-Fulkerson MethodComplete exposition of residual graphs and augmenting paths
Max-flow min-cut dualityCLRS 24.2: Ford-Fulkerson MethodContains the max-flow min-cut theorem and its proof