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, or a deeper exercise lane.

Source Roles

SourceRoleWhy it is here
The Algorithm Design Manual (Skiena)Primary -- problem-drivenBest overall framing for "what algorithm do I pick and why"
Introduction to Algorithms (CLRS)Primary -- proofs and boundsBest for rigorous cost derivations, lower bounds, and amortized arguments
Algorithms (Sedgewick)Selective supportImplementation-focused second pass and visual intuition
Grokking AlgorithmsFirst-pass framingAccessible warm-up on binary search, hashing, and quicksort
Competitive ProgrammingExercise sourcePractice-heavy reinforcement for heaps, hashing, and binary search

Read Only If Stuck

Cluster 1: Comparison-Based Sorting and the Lower Bound

Cluster 2: Linear-Time and Specialized Sorting

Cluster 3: Searching in Sorted and Unsorted Data

Cluster 4: Hash Tables as a Dictionary Primitive

Cluster 5: Heaps and Priority Queues

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
Mergesort is the divide-and-conquer exemplarCLRS 2.3Clean recurrence derivation and correctness argument
Quicksort and why randomization helpsCLRS 7.3Best explanation of expected n log n via random pivots
Comparison sorting has an Omega(n log n) lower boundCLRS 8.1The decision-tree argument in its canonical form
Binary search and its invariantSkiena 4.9Variant-aware problem-driven treatment
Selection and order statistics in O(n)CLRS 9.2Quickselect derivation with random pivots
Hashing as a randomized modelCLRS 11.2Expected-cost analysis with simple-uniform-hashing assumption
Collision resolution: chaining vs open addressingCLRS 11.4Probe-sequence costs and tombstone logic
The binary heap as an implicit treeCLRS 6.1Standard array-index arithmetic and heap property
Heapsort and the priority-queue APICLRS 6.5Canonical PQ operations and decrease_key treatment