Legend
| Difficulty | Score | Level | Description |
|---|---|---|---|
| 🟢 Green | 1.0-6.0 | Undergrad | Foundational and introductory. |
| 🟡 Yellow | 7.0-8.0 | Advanced Undergrad / Early Graduate | Intermediate with moderate prerequisites. |
| 🟠 Orange | 8.5-9.0 | Graduate | Advanced and mathematically demanding. |
| 🔴 Red | 9.5-10.0 | Graduate / Research | Expert or research-level material. |
1) General Algorithms
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Algorithms | Cormen, Leiserson, Rivest, Stein | Undergrad | 7.0 |
| The Algorithm Design Manual | Steven Skiena | Undergrad | 7.0 |
| Algorithm Design | Kleinberg, Tardos | Graduate | 8.5 |
| Algorithms | Dasgupta, Papadimitriou, Vazirani | Undergrad | 7.0 |
| Competitive Programming 4 | Halim, Halim, Effendy | Undergrad | 7.0 |
| Competitive Programmer’s Handbook | Antti Laaksonen | Undergrad | 7.0 |
| Programming Challenges | Skiena, Revilla | Undergrad | 7.0 |
| Algorithms Unlocked | Cormen | Undergrad | 7.0 |
| Thinking in Algorithms | Panos Louridas | Undergrad | 7.0 |
| Programming Pearls | Jon Bentley | Undergrad | 7.0 |
| The Practice of Programming | Kernighan & Pike | Undergrad | 7.0 |
| Algorithmic Information Theory | Chaitin | Research | 9.5 |
| Problem Solving with Algorithms and Data Structures Using Python | Miller, Ranum | Undergrad | 7.0 |
| Guide to Competitive Programming | Antti Laaksonen | Undergrad | 7.0 |
| Competitive Programming 3/4 | Steven Halim | Undergrad | 7.0 |
| The Hitchhiker’s Guide to the Programming Contests | Various | Undergrad | 7.0 |
| Competitive Programming (cpbook.net) | Halim | Undergrad | 7.0 |
| Looking for a Challenge | Various | Undergrad | 7.0 |
| Algorithms | Robert Sedgewick & Kevin Wayne | Undergrad | 7.0 |
| Algorithms | Jeff Erickson | Undergrad | 7.0 |
| Algorithms Illuminated | Tim Roughgarden | Undergrad | 7.0** |
| プログラミングコンテストチャレンジブック | Various | Undergrad | 7.0 |
| 算法竞赛入门经典 | Various | Undergrad | 7.0 |
| 算法竞赛入门经典·训练指南 | Various | Undergrad | 7.0 |
| 算法艺术与信息学竞赛 | Various | Graduate | 8.5 |
2) Data Structures
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Algorithms | Cormen, Leiserson, Rivest, Stein | Undergrad | 7.0 |
| Data Structures and Algorithm Analysis in C++ | Mark Allen Weiss | Undergrad | 7.0 |
| Data Structures and Algorithms in Java | Goodrich, Tamassia, Goldwasser | Undergrad | 7.0 |
| Advanced Data Structures | Peter Brass | Graduate | 8.5 |
| Data Structures and Network Algorithms | Robert Tarjan | Graduate | 8.5 |
| Purely Functional Data Structures | Chris Okasaki | Graduate | 8.5 |
| Handbook of Data Structures and Applications | Mehta, Sahni, et al. | Graduate | 8.5 |
| The Art of Computer Programming, Vol. 1 | Knuth | Graduate | 8.5 |
| The Art of Computer Programming, Vol. 3 | Knuth | Graduate | 8.5 |
| The Art of Computer Programming, Vol. 4A | Knuth | Research | 9.5 |
| The Art of Computer Programming, Vol. 4B | Knuth | Research | 9.5 |
3) Graph Algorithms
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Graph Theory | Douglas West | Undergrad | 7.0 |
| Graph Theory | Bondy, Murty | Undergrad | 7.0 |
| Graph Theory | Reinhard Diestel | Graduate | 8.5 |
| Graph Theory and Its Applications | Gross, Yellen | Undergrad | 7.0 |
| Modern Graph Theory | Bollobás | Graduate | 8.5 |
| Extremal Graph Theory | Bollobás | Research | 9.5 |
| Digraphs: Theory, Algorithms and Applications | Bang‑Jensen, Gutin | Graduate | 8.5 |
| Algorithmic Graph Theory and Perfect Graphs | Golumbic | Graduate | 8.5 |
| Network Flows | Ahuja, Magnanti, Orlin | Graduate | 8.5 |
| Combinatorial Optimization: Polyhedra and Efficiency | Schrijver | Research | 9.5 |
| Graph Minors series | Robertson, Seymour | Research | 9.5 |
| Matching Theory | Lovász, Plummer | Research | 9.5 |
| Algebraic Graph Theory | Godsil, Royle | Research | 10.0 |
4) Trees and Dynamic Trees
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Algorithms | Cormen, Leiserson, Rivest, Stein | Undergrad | 7.0 |
| Data Structures and Network Algorithms | Tarjan | Graduate | 8.5 |
| Graph Theory | Diestel | Graduate | 8.5 |
| Algorithmic Graph Theory and Perfect Graphs | Golumbic | Graduate | 8.5 |
| The Art of Computer Programming, Vol. 1 | Knuth | Graduate | 8.5 |
| Dynamic Trees | advanced monographs | Research | 9.5 |
| Tree Algorithms and Applications | advanced lecture notes | Graduate | 8.5 |
5) String Algorithms
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| String Algorithms | Smyth | Undergrad | 7.0 |
| Algorithms on Strings, Trees, and Sequences | Gusfield | Graduate | 8.5 |
| Text Algorithms | Crochemore, Rytter | Graduate | 8.5 |
| Handbook of Exact String Matching Algorithms | Crochemore, Hancart, Lecroq | Graduate | 8.5 |
| Combinatorial Pattern Matching | Apostolico, Galil (eds.) | Graduate | 8.5 |
| The Art of Computer Programming, Vol. 4A | Knuth | Research | 9.5 |
| Compressed Text Indexing | advanced monographs | Research | 9.5 |
| Pattern Matching Algorithms | advanced references | Graduate | 8.5 |
| Suffix Trees and Their Applications | advanced lecture notes | Research | 9.5 |
6) Number Theory
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Elementary Number Theory | Burton | Undergrad | 7.0 |
| An Introduction to the Theory of Numbers | Hardy, Wright | Undergrad | 7.0 |
| A Computational Introduction to Number Theory and Algebra | Shoup | Undergrad | 7.0 |
| A Classical Introduction to Modern Number Theory | Ireland, Rosen | Graduate | 8.5 |
| An Introduction to Analytic Number Theory | Apostol | Graduate | 8.5 |
| Introduction to Modern Number Theory | Murty, Esmonde | Graduate | 8.5 |
| A Course in Arithmetic | Serre | Graduate | 8.5 |
| Algorithmic Number Theory, Vol. 1 | Cohen | Graduate | 8.5 |
| Algorithmic Number Theory, Vol. 2 | Cohen | Graduate | 8.5 |
| Prime Numbers: A Computational Perspective | Crandall, Pomerance | Graduate | 8.5 |
| Algebraic Number Theory | Neukirch | Research | 9.5 |
| Introduction to Cyclotomic Fields | Washington | Research | 9.5 |
| Modern Olympiad Number Theory | Aditya Khurmi | Undergrad | 7.0 |
| An Introduction to Number Theory | Graham Everest & Thomas Ward | Undergrad | 7.0 |
7) Algebra, Polynomials, and Symbolic Computation
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Abstract Algebra | Dummit, Foote | Undergrad | 7.0 |
| Contemporary Abstract Algebra | Gallian | Undergrad | 7.0 |
| Algebra | Michael Artin | Graduate | 8.5 |
| Algebra | Serge Lang | Graduate | 8.5 |
| Algorithms for Computer Algebra | Geddes, Czapor, Labahn | Graduate | 8.5 |
| Ideals, Varieties, and Algorithms | Cox, Little, O’Shea | Graduate | 8.5 |
| Computational Commutative Algebra Vol. I | Kreuzer, Robbiano | Research | 9.5 |
| Computational Commutative Algebra Vol. II | Kreuzer, Robbiano | Research | 9.5 |
| Polynomial Algorithms in Computer Algebra | von zur Gathen, Gerhard | Research | 9.5 |
| Modern Computer Algebra | von zur Gathen, Gerhard | Research | 9.5 |
| Gröbner Bases and Convex Polytopes | Sturmfels | Research | 9.5 |
| Combinatorial Commutative Algebra | Miller, Sturmfels | Research | 10.0 |
| Concrete Mathematics | Graham, Knuth & Patashnik | Undergrad | 7.0 |
8) Linear Algebra and Matrix Algorithms
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Linear Algebra Done Right | Sheldon Axler | Undergrad | 7.0 |
| Introduction to Linear Algebra | Strang | Undergrad | 7.0 |
| Applied and Computational Linear Algebra | Strang | Undergrad | 7.0 |
| Matrix Computations | Golub, Van Loan | Graduate | 8.5 |
| Numerical Linear Algebra | Trefethen, Bau | Graduate | 8.5 |
| Topics in Matrix Analysis | Horn, Johnson | Graduate | 8.5 |
| Matrix Analysis | Horn, Johnson | Research | 9.5 |
| Algebraic Complexity Theory | Bürgisser, Clausen, Shokrollahi | Research | 9.5 |
9) Geometry (merged Computational & Classical)
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Computational Geometry in C | Joseph O’Rourke | Undergrad | 7.0 |
| Computational Geometry: Algorithms and Applications | de Berg, Cheong, van Kreveld, Overmars | Undergrad | 7.0 |
| Computational Geometry | Preparata, Shamos | Graduate | 8.5 |
| Discrete and Computational Geometry | Matoušek | Graduate | 8.5 |
| Handbook of Discrete and Computational Geometry | Goodman, O’Rourke (eds.) | Graduate | 8.5 |
| Algorithms in Combinatorial Geometry | Edelsbrunner | Graduate | 8.5 |
| Geometric Folding Algorithms | Demaine, O’Rourke | Research | 9.5 |
| Computational Topology: An Introduction | Edelsbrunner, Harer | Graduate | 8.5 |
| Delaunay Triangulations and Voronoi Diagrams | advanced monographs | Research | 9.5 |
| Euclidean Geometry in Mathematical Olympiads | Evan Chen | Undergrad | 7.0 |
| Algebraic Geometry | Robin Hartshorne | Research | 10.0 |
| Modern Differential Geometry for Physicists | Chris Isham | Graduate | 8.5 |
10) Combinatorics
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| A Course in Combinatorics | van Lint, Wilson | Undergrad | 7.0 |
| Introductory Combinatorics | Brualdi | Undergrad | 7.0 |
| Applied Combinatorics | Tucker | Undergrad | 7.0 |
| Enumerative Combinatorics, Vol. 1 | Stanley | Graduate | 8.5 |
| Enumerative Combinatorics, Vol. 2 | Stanley | Research | 9.5 |
| Generatingfunctionology | Wilf | Graduate | 8.5 |
| The Probabilistic Method | Alon, Spencer | Graduate | 8.5 |
| Combinatorial Optimization | Schrijver | Research | 9.5 |
| Extremal Combinatorics | Jukna | Research | 9.5 |
| Proofs from THE BOOK | Aigner, Ziegler | Undergrad | 7.0 |
| Algebraic Combinatorics | Stanley | Research | 10.0 |
| A Path to Combinatorics for Undergraduates | Titu Andreescu | Undergrad | 7.0 |
| Olympiad Combinatorics | Pranav Sriram | Undergrad | 7.0 |
| Combinatorial Optimization | Korte & Vygen | Graduate | 8.5 |
11) Dynamic Programming and Optimization
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Algorithms | Cormen, Leiserson, Rivest, Stein | Undergrad | 7.0 |
| Algorithm Design | Kleinberg, Tardos | Graduate | 8.5 |
| Competitive Programming 4 | Halim, Halim, Effendy | Undergrad | 7.0 |
| Dynamic Programming and Optimal Control | Bertsekas | Graduate | 8.5 |
| Combinatorial Optimization | Schrijver | Research | 9.5 |
| Combinatorial Optimization: Polyhedra and Efficiency | Schrijver | Research | 9.5 |
| Optimization | Bazaraa, Sherali, Shetty | Graduate | 8.5 |
| Integer and Combinatorial Optimization | Nemhauser, Wolsey | Graduate | 8.5 |
| Convex Optimization | Boyd & Vandenberghe | Graduate | 8.5 |
12) Probability and Randomized Algorithms
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| A First Course in Probability | Ross | Undergrad | 7.0 |
| Probability and Computing | Mitzenmacher, Upfal | Graduate | 8.5 |
| Randomized Algorithms | Motwani, Raghavan | Graduate | 8.5 |
| The Probabilistic Method | Alon, Spencer | Graduate | 8.5 |
| Introduction to Algorithms | Cormen, Leiserson, Rivest, Stein | Undergrad | 7.0 |
| The Art of Computer Programming, Vol. 2 | Knuth | Graduate | 8.5 |
| Fifty Challenging Problems in Probability | Various | Undergrad | 7.0 |
13) Complexity Theory and NP‑Hardness
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to the Theory of Computation | Sipser | Undergrad | 7.0 |
| Elements of the Theory of Computation | Lewis, Papadimitriou | Graduate | 8.5 |
| Computers and Intractability | Garey, Johnson | Graduate | 8.5 |
| Computational Complexity | Papadimitriou | Graduate | 8.5 |
| Computational Complexity: A Modern Approach | Arora, Barak | Graduate | 8.5 |
| Complexity and Real Computation | Blum, Cucker, Shub, Smale | Research | 9.5 |
| The Nature of Computation | Moore, Mertens | Graduate | 8.5 |
14) Approximation Algorithms and Hard Optimization
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Approximation Algorithms | Vazirani | Graduate | 8.5 |
| The Design of Approximation Algorithms | Williamson, Shmoys | Graduate | 8.5 |
| Computers and Intractability | Garey, Johnson | Graduate | 8.5 |
| Combinatorial Optimization | Schrijver | Research | 9.5 |
| Randomized Algorithms | Motwani, Raghavan | Graduate | 8.5 |
| The Probabilistic Method | Alon, Spencer | Graduate | 8.5 |
15) Cryptography and Computational Number Theory
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| An Introduction to Mathematical Cryptography | Hoffstein, Pipher, Silverman | Undergrad | 7.0 |
| Introduction to Cryptography | Katz, Lindell | Undergrad | 7.0 |
| Guide to Elliptic Curve Cryptography | Hankerson, Menezes, Vanstone | Graduate | 8.5 |
| A Graduate Course in Applied Cryptography | Boneh, Shoup | Graduate | 8.5 |
| Handbook of Applied Cryptography | Menezes, van Oorschot, Vanstone | Graduate | 8.5 |
| Mathematics of Public Key Cryptography | advanced texts | Graduate | 8.5 |
| Elliptic Curves | Silverman | Research | 9.5 |
| Prime Numbers: A Computational Perspective | Crandall, Pomerance | Graduate | 8.5 |
16) Automata, Parsing, and Formal Languages
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Automata Theory, Languages, and Computation | Hopcroft, Motwani, Ullman | Undergrad | 7.0 |
| Introduction to the Theory of Computation | Sipser | Undergrad | 7.0 |
| Compilers: Principles, Techniques, and Tools | Aho, Lam, Sethi, Ullman | Undergrad | 7.0 |
| Parsing Techniques: A Practical Guide | Grune, Jacobs | Graduate | 8.5 |
| The Theory of Parsing, Translation, and Compiling | Aho, Ullman | Graduate | 8.5 |
| Formal Languages and Their Relation to Automata | Harrison | Graduate | 8.5 |
| Introduction to Language Theory and Translation | advanced references | Graduate | 8.5 |
17) Game Theory and Combinatorial Games
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| A Course in Game Theory | Osborne, Rubinstein | Undergrad | 7.0 |
| Game Theory | Fudenberg, Tirole | Graduate | 8.5 |
| Algorithmic Game Theory | Nisan, Roughgarden, Tardos, Vazirani | Graduate | 8.5 |
| Combinatorial Game Theory | Conway | Graduate | 8.5 |
| Winning Ways for Your Mathematical Plays (4 vols.) | Berlekamp, Conway, Guy | Graduate | 8.5 |
| On Numbers and Games | Conway | Graduate | 8.5 |
| The Theory of Games and Economic Behavior | von Neumann, Morgenstern | Research | 9.5 |
| Combinatorial Game Theory | Thomas S. Ferguson | Graduate | 8.5 |
| Composite Mathematical Games | Various | Undergrad | 6.0 |
18) Parallel, External‑Memory, and Streaming
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Introduction to Parallel Algorithms | JáJá | Graduate | 8.5 |
| Designing Efficient Algorithms for Parallel Computers | Quinn | Graduate | 8.5 |
| The Design and Analysis of Parallel Algorithms | Leighton | Graduate | 8.5 |
| External Memory Algorithms and Data Structures | advanced monographs | Research | 9.5 |
| Cache‑Oblivious Algorithms | survey / monographs | Research | 9.5 |
| Streaming Algorithms | survey literature | Research | 9.5 |
| Algorithm Engineering | advanced references | Graduate | 8.5 |
19) Search, Backtracking, Constraint Solving
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Artificial Intelligence: A Modern Approach | Russell, Norvig | Undergrad | 7.0 |
| Constraint Processing | Dechter | Graduate | 8.5 |
| Handbook of Satisfiability | Biere, Heule, van Maaren, Walsh (eds.) | Research | 9.5 |
| The Calculus of Computation | Biere, et al. | Research | 9.5 |
| Decision Making and Search | advanced monographs | Graduate | 8.5 |
20) Computational Topology and Advanced Geometry
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Computational Topology: An Introduction | Edelsbrunner, Harer | Graduate | 8.5 |
| Algebraic Topology | Hatcher | Graduate | 8.5 |
| Elements of Algebraic Topology | Munkres | Graduate | 8.5 |
| Geometric Folding Algorithms | Demaine, O’Rourke | Research | 9.5 |
| Handbook of Discrete and Computational Geometry | Goodman, O’Rourke (eds.) | Graduate | 8.5 |
| Computational Geometry | Preparata, Shamos | Graduate | 8.5 |
| Persistent Homology | Edelsbrunner & Harer | Research | 9.5 |
21) Research‑Level CP and Theory Stack
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| The Art of Computer Programming, Vol. 4A | Knuth | Research | 9.5 |
| The Art of Computer Programming, Vol. 4B | Knuth | Research | 9.5 |
| The Art of Computer Programming, Vol. 4C | Knuth | Research | 10.0 |
| The Art of Computer Programming, Vol. 4D+ (fascicles) | Knuth | Research | 10.0 |
| Combinatorial Optimization: Polyhedra and Efficiency | Schrijver | Research | 9.5 |
| Polynomial Algorithms in Computer Algebra | von zur Gathen, Gerhard | Research | 9.5 |
| Modern Computer Algebra | von zur Gathen, Gerhard | Research | 9.5 |
| Algebraic Complexity Theory | Bürgisser, Clausen, Shokrollahi | Research | 9.5 |
| Extremal Graph Theory | Bollobás | Research | 9.5 |
| Algebraic Number Theory | Neukirch | Research | 9.5 |
| Computational Commutative Algebra | Kreuzer, Robbiano | Research | 9.5 |
| Complexity and Real Computation | Blum, Cucker, Shub, Smale | Research | 9.5 |
| Matching Theory | Lovász, Plummer | Research | 9.5 |
| Graph Minors series | Robertson, Seymour | Research | 9.5 |
| Suffix Trees and Their Applications | advanced lecture notes | Research | 9.5 |
22) Problem‑Solving and Mathematical Thinking
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| How to Solve It | George Pólya | Undergrad | 6.0 |
| The Art and Craft of Problem Solving | Paul Zeitz | Undergrad | 7.0 |
| Problem‑Solving Strategies | Arthur Engel | Undergrad | 7.0 |
| How to Prove It | Daniel J. Velleman | Undergrad | 6.0 |
| Putnam and Beyond | Andreescu et al. | Undergrad | 7.0 |
| Problem Books in Mathematics | Various | Undergrad | 7.0 |
23) Analysis and Sequences
| Book | Author(s) | Level | Difficulty |
|---|---|---|---|
| Sequences | Halberstam & Roth | Graduate | 8.5 |
| Introduction to the Analysis of Algorithms | Sedgewick & Flajolet | Graduate | 8.5 |
| Analysis of Algorithms | Jeffrey McConnell | Undergrad | 7.0 |
| Practical Analysis of Algorithms | Vrajitoru & Knight | Undergrad | 7.0 |
| Analytic Combinatorics | Flajolet & Sedgewick | Research | 9.5 |
| Asymptotic Methods in Analysis | de Bruijn | Graduate | 8.5 |