Algorithms are the core of every software system, from search engines and social networks to AI models and financial trading platforms. Understanding how to design and analyze algorithms is not just interview preparation — it is the foundation of building efficient, scalable systems.
As AI and automation reshape the industry, algorithmic thinking remains the skill that separates engineers who can optimize performance from those who only glue libraries together.
Despite the rise of high-level abstractions and AI-assisted coding, the demand for solid algorithmic knowledge has only grown. Tech companies still center their hiring process around algorithmic problem-solving, and for good reason: the ability to decompose complex problems, reason about efficiency, and choose the right data structures is what makes software work at scale.
About the book
Algorithms by Jeff Erickson is a rigorous yet accessible textbook that grew out of lecture notes the author developed over two decades teaching algorithms at the University of Illinois at Urbana-Champaign.
The book covers the algorithmic content of a junior-level theory course, focusing on fundamental techniques and their applications. It assumes familiarity with discrete mathematics and basic data structures, making it an excellent next step after an introductory data structures course.
Written in an engaging and often humorous style, the book balances formal correctness with practical intuition. Erickson’s voice is distinctive — he treats algorithms not as mechanical recipes but as creative tools, and his passion for the subject is evident on every page. The result is a textbook that serious students actually enjoy reading.
What you will learn
This book builds a deep understanding of the most important algorithmic paradigms and their applications. You will learn to reason about correctness and efficiency using induction, recurrences, and asymptotic analysis. The chapters progress from fundamental recursion and backtracking to dynamic programming, greedy algorithms, graph algorithms, and finally NP-hardness — giving you both the tools and the theoretical grounding to tackle new problems.
Each chapter includes a substantial collection of exercises, many drawn from actual exams and qualifying tests at Illinois. They range from straightforward applications to genuinely challenging problems that will stretch your understanding.
Table of contents
- 0. Introduction
- 1. Recursion
- 2. Backtracking
- 3. Dynamic Programming
- 4. Greedy Algorithms
- 5. Basic Graph Algorithms
- 6. Depth-First Search
- 7. Minimum Spanning Trees
- 8. Shortest Paths
- 9. All-Pairs Shortest Paths
- 10. Maximum Flows & Minimum Cuts
- 11. Applications of Flows and Cuts
- 12. NP-Hardness
Book details
- Title: Algorithms
- Author(s): Jeff Erickson
- Publication year: 2019
- Publisher: Self-published
- Pages: 472
- PDF size: 23.9 MB
- Estimated reading time: ~11 h 48 min
- Level: Intermediate
- Main category: Programming
- Subcategory: (not applicable)
- Language: English
- License: Creative Commons Attribution 4.0 International (CC BY 4.0)
More books in: Algorithms, Programming
Legal notice: This book is shared for educational purposes only. The content is distributed under Creative Commons licenses or with explicit permission from the author. FreeProgrammingBooks may host files that comply with their respective licenses.