Divide-and-Conquer (Ch. 4)

Quicksort (7.1–7.4) & Sorting LB (8.1)

Tips: Tail-recursion eliminate on larger side; median-of-three; 3-way partition to handle equal keys.

Order Statistics (9.1–9.3)

Dynamic Programming (14.1–14.5)

Greedy (15.1–15.3)

Amortized Analysis (16.1–16.4)

Disjoint Sets (19.1)

Elementary Graph Algorithms (20.1–20.5)

Minimum Spanning Trees (21.1–21.2)

Single-Source Shortest Paths (22.1–22.4)

All-Pairs Shortest Paths (22.5 proofs; 23.1–23.2)

Maximum Flow (24.1–24.3)

Linear Programming (29.1–29.3)

String Matching (32.1–32.2)

NP-Completeness (34.1–34.5)

Mini Derivations & Identities

Disjoint Sets (19.1)

Elementary Graph Algorithms (20.1–20.5)

Minimum Spanning Trees (21.1–21.2)

Single‑Source Shortest Paths (22.1–22.4)

All‑Pairs Shortest Paths (22.5; 23.1–23.2)

Maximum Flow (24.1–24.3)

Linear Programming (29.1–29.3)

String Matching (32.1–32.2)

NP‑Completeness (34.1–34.5)

Exam Patterns & Proof Sketches

Complexities Quick Table

TopicAlgorithmTimeNotes
QuicksortRandomized\(\mathbb{E}\,\Theta(n\log n)\)In-place; worst \(n^2\)
Order stat.Randomized-Select\(\mathbb{E}\,\Theta(n)\)Partition-based
Order stat.Median-of-Medians\(\Theta(n)\)Worst-case linear
DPLCS\(O(mn)\)Backtrack to reconstruct
GreedyHuffman\(O(n\log n)\)Min-heap
AmortizedBinary counter\(O(1)\) amort.Bit flips total \(O(n)\)
Union-FindRank+Compression\(O(\alpha(n))\) amort.Almost constant
GraphsBFS/DFS\(O(V+E)\)Adjacency lists
MSTKruskal\(O(E\log V)\)Sort + DSU
SSSPDijkstra\(O(E\log V)\)Nonneg. weights
APSPFloyd–Warshall\(O(V^3)\)Dense graphs
FlowEdmonds–Karp\(O(VE^2)\)BFS augment paths
LPSimplex(Often fast)Worst-case exponential
StringsRabin–KarpAvg. \(O(n+m)\)Rolling hash; verify