Graph & Optimization — Ultra‑Dense Exam Notes (CLRS 4e)

Print‑friendly Tiny fonts MathJax enabled 19.1, 20.1–20.5, 21.1–21.2, 22.1–22.4, 22.5 & 23.1–23.2, 24.1–24.3, 29.1–29.3, 32.1–32.2, 34.1–34.5

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)

Complexity & Key Facts (Quick Reference)

TopicAlgorithmTimeNotes
DSURank + Compression\(O(\alpha(n))\) amort.Near-constant
GraphsBFS/DFS\(O(V+E)\)Layers / timestamps
MSTKruskal\(O(E\log V)\)Sort + DSU
MSTPrim (Fib heap)\(O(E+V\log V)\)Dense \(V^2\) alt.
SSSPDijkstra (Fib)\(O(E+V\log V)\)No negative edges
SSSPBellman–Ford\(O(VE)\)Neg edges; detect neg cycle
APSPFloyd–Warshall\(O(V^3)\)Simple; dense
APSPJohnson\(O(VE + V E\log V)\)Neg edges ok
FlowEdmonds–Karp\(O(VE^2)\)BFS augment
LPSimplexOften fastWorst-case exponential
LPInterior-PointPolynomialPractical & robust
StringsRabin–KarpAvg \(O(n+m)\)Verify on match
NP‑CReductionsMap known NP‑C → target

Exam Patterns & Proof Sketches