Skip to main content

Resources

Curated, operational source list. Concept pages cite book chunks only; URLs live here.

Source Stack

RoleSourceWhen to use
Primary referenceCormen, Leiserson, Rivest, Stein. Introduction to Algorithms (4th ed.). CLRS.Canonical treatment of red-black trees, disjoint sets, amortized analysis. First stop for theorems and proofs.
Pragmatic companionSkiena. The Algorithm Design Manual (3rd ed.).Sanity-check when CLRS feels abstract. Useful "war stories" and pragmatic choice advice.
Implementation primerSedgewick. Algorithms (1st ed., Princeton).Balanced-tree implementations, priority queues, random-number primers.
Contest / toolingHalim & Halim. Competitive Programming.Segment tree, Fenwick tree, union-find recipes that actually compile under contest constraints.
Light overviewBhargava. Grokking Algorithms.Re-acquaintance: Bloom filters, hashing intuition, mental models before the formal text.
External (papers and lectures)See External Resources below.Only after the book has failed or the concept is explicitly research-flavored (Fibonacci heaps, persistence, succinct).

Skiena and Sedgewick are not substitutes for CLRS on amortized analysis. Use them to unstick intuition; return to CLRS to lock the proof.

Resource Map by Cluster

Relative paths from a concept page (concepts/cluster-XX/NN-*.md) use prefix ../../../books/.

Cluster 1 - Balanced Binary Search Trees

ConceptLocal chunk(s)
01 BSTs and the BST property (supporting)CLRS 12.1 Binary search trees, Sedgewick balanced trees
02 Red-Black trees (primary)CLRS 13.1 Properties of red-black trees, CLRS 13.2 Rotations, CLRS 13.3 Insertion, CLRS 13.4 Deletion, Sedgewick balanced trees
03 AVL trees (supporting)Sedgewick balanced trees. CLRS treats AVL only in passing; see External below.
04 Skip lists (primary)No dedicated CLRS chunk. See External: Pugh's original paper.

Cluster 2 - Union-Find and Disjoint-Set Structures

ConceptLocal chunk(s)
05 Union-Find and naive representation (supporting)CLRS 19.1 Disjoint-set operations, CLRS 19.2 Linked-list representation, Competitive Programming 2.4.2 Union-find disjoint sets
06 Union by rank + path compression (primary)CLRS 19.3 Disjoint-set forests, CLRS 19.4 Analysis of union by rank with path compression, Competitive Programming 2.4.2 Union-find disjoint sets
07 Applications (primary)CLRS 21.2 Kruskal and Prim, Competitive Programming 4.3 Minimum spanning tree

Cluster 3 - Advanced Heaps and Meldable Structures

ConceptLocal chunk(s)
08 Binomial heaps (primary)No dedicated CLRS 4th-edition chunk (removed after 3rd edition). Sedgewick priority queues. See External: Vuillemin 1978 binomial heap paper.
09 Fibonacci heaps (primary)No dedicated CLRS 4th-edition chunk. Sedgewick priority queues. See External: Fredman and Tarjan 1987, MIT OCW 6.046J.
10 Pairing heaps (supporting)Skiena: Pairing heap discussion. See External: Fredman, Sedgewick, Sleator, Tarjan 1986.

Cluster 4 - Amortized Analysis

ConceptLocal chunk(s)
11 Why amortized (primary)CLRS Chapter 16 (intro, see 16.1)
12 Aggregate method and dynamic array (primary)CLRS 16.1 Aggregate analysis, CLRS 16.4 Dynamic tables
13 Accounting method (primary)CLRS 16.2 The accounting method, CLRS 16.4 Dynamic tables
14 Potential method (primary)CLRS 16.3 The potential method, CLRS 16.4 Dynamic tables

Cluster 5 - Randomized, Persistent, and Succinct Structures

ConceptLocal chunk(s)
15 Randomized DS (supporting)Sedgewick random numbers, Competitive Programming 2.3 Non-linear DS with built-in libraries. See External: Pugh skip list, Aragon-Seidel treaps.
16 Bloom filters (primary)Grokking Algorithms Chapter 11: Bloom filters and HyperLogLog. See External: Bloom 1970, hur.st calculator.
17 Segment and Fenwick trees (primary)Competitive Programming 2.4.3 Segment tree, Competitive Programming 2.4.4 Binary indexed (Fenwick) tree. See External: CP-Algorithms segment tree.
18 Persistent DS (supporting)No dedicated CLRS or Skiena chunk. See External: Okasaki, Driscoll-Sarnak-Sleator-Tarjan 1986.
19 Succinct and cache-oblivious (supporting)No dedicated local chunk. See External: Jacobson 1989, Frigo-Leiserson-Prokop-Ramachandran 1999.

External Resources (validated)

Use only if the book has failed you. Each was validated by network fetch at authoring time.

Papers

Lectures

Online reference material

Books (external, optional)

  • Okasaki, C. (1999). Purely Functional Data Structures. Cambridge University Press. Persistent catenable lists, implicit queues, red-black trees in Haskell.
  • Tarjan, R. E. (1983). Data Structures and Network Algorithms. SIAM monograph. The source for splay trees, Fibonacci heaps, and alpha(n).

Use Rules

  • Concept pages do not carry external URLs. If you find one there, move it here.
  • For every primary concept you must be able to map the claim in the concept page to a specific book chunk or paper listed above.
  • If you reach for an external link, first check whether a local chunk can answer; go external only when the book is silent (e.g., Fibonacci heaps, persistence, succinct, cache-oblivious).
  • External reading policy: at most one external source per concept per sitting. If you open more than one, you are procrastinating.