When brute force isn't enough.
- Logicomix: Graphic novel chronicling Bertrand Russell's quest to establish the foundations of mathematics while exploring the personal turmoil of great logicians.
- MIT Courseware Introduction to Algorithms: Lecture series that discusses algorithm design and analysis, covering topics like sorting, dynamic programming, graph algorithms, and NP-completeness.
- MIT Coursware Design and Analysis of Algorithms: Advanced techniques in algorithm design and analysis, including network flows, linear programming, randomized algorithms, and approximation algorithms.
- Competitive Programmer's Handbook: Book covering essential topics like dynamic programming, graph algorithms, number theory, and efficient data structures from the perspective of competitive programming.
- Grokking Algorithms: Beginner-friendly guide to core algorithms including search, sort, recursion, and graph traversal through visual explanations and practical examples.
- Introduction to Theory of Computation: Easy to digest text exploring formal languages, automata theory, computability, and complexity with rigorous proofs and clear explanations.
- Randomized Algorithms: Comprehensive guide to the design and analysis of randomized algorithms, covering probabilistic techniques, random sampling, and applications in computational complexity and optimization
- Approximation Algorithms: Rigorous exploration of approximation algorithms, focusing on design techniques, performance guarantees, and applications to NP-hard optimization problems.