Here are 100 books that Algorithm Design fans have personally recommended if you like Algorithm Design. Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.

When you buy books, we may earn a commission that helps keep our lights on (or join the rebellion as a member).

Book cover of Algorithms Illuminated (Part 1): The Basics

Daniel Zingaro Author Of Algorithmic Thinking: A Problem-Based Introduction

From my list on for actually learning how to design algorithms.

Why am I passionate about this?

I love pulling back the curtain on how computers work. I want to go from thinking "that's magic" to "that's unbelievably clever but now I understand how it works." Each time I am able to do this feels like a hard-won but therefore meaningful step toward understanding. I want others to experience this empowering shift. I have a PhD in computer science education, and  I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for actually learning how to design algorithms

Daniel Zingaro Why Daniel loves this book

How do we know whether an algorithm is correct? While intuition is helpful, for tricky algorithms nothing beats the formal proof. But I don’t want a proof for proof’s sake: I want it to deepen my understanding of the algorithm. The proofs in this book series are the best I’ve seen: they are self-contained, described step by step, and serve to sharpen your understanding of what the algorithm is really doing. Couple that fact with the self-check questions, exercises with solutions, and associated video lectures, and what we have here is a wonderful resource for the motivated algorithms learner.

By Tim Roughgarden ,

Why should I read it?

1 author picked Algorithms Illuminated (Part 1) as one of their favorite books, and they share why you should read it.

What is this book about?

Algorithms are the heart and soul of computer science. Their applications range from network routing and computational genomics to public-key cryptography and database system implementation. Studying algorithms can make you a better programmer, a clearer thinker, and a master of technical interviews. Algorithms Illuminated is an accessible introduction to the subject---a transcript of what an expert algorithms tutor would say over a series of one-on-one lessons. The exposition is rigorous but emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details.
Part 1 of the book series covers asymptotic analysis and big-O notation, divide-and-conquer algorithms and the…


If you love Algorithm Design...

Ad

Book cover of Aggressor

Aggressor by FX Holden,

It is April 1st, 2038. Day 60 of China's blockade of the rebel island of Taiwan.

The US government has agreed to provide Taiwan with a weapons system so advanced that it can disrupt the balance of power in the region. But what pilot would be crazy enough to run…

Book cover of Algorithms

Daniel Zingaro Author Of Algorithmic Thinking: A Problem-Based Introduction

From my list on for actually learning how to design algorithms.

Why am I passionate about this?

I love pulling back the curtain on how computers work. I want to go from thinking "that's magic" to "that's unbelievably clever but now I understand how it works." Each time I am able to do this feels like a hard-won but therefore meaningful step toward understanding. I want others to experience this empowering shift. I have a PhD in computer science education, and  I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for actually learning how to design algorithms

Daniel Zingaro Why Daniel loves this book

Many of my favourite algorithms books give short shrift to designing APIs for the algorithms and data structures that they present. The Sedgewick and Wayne book, by contrast, goes all in on an object-oriented API design. This is my book choice for Java programmers and those interested in larger program design considerations. Clear your calendar: each chapter here is massive, but I think the time investment is worth it. I especially like the chapter that shows how to tune classic algorithms for realizing speedups when working with strings.

By Robert Sedgewick , Kevin Wayne ,

Why should I read it?

1 author picked Algorithms as one of their favorite books, and they share why you should read it.

What is this book about?

This fourth edition of Robert Sedgewick and Kevin Wayne's Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing--including fifty algorithms every programmer should know. In this edition, new Java implementations are written in an accessible modular programming style, where all of the code is exposed to the reader and ready to use.



The algorithms in this book represent a body of knowledge developed…


Book cover of Data Structures and Algorithms

Daniel Zingaro Author Of Algorithmic Thinking: A Problem-Based Introduction

From my list on for actually learning how to design algorithms.

Why am I passionate about this?

I love pulling back the curtain on how computers work. I want to go from thinking "that's magic" to "that's unbelievably clever but now I understand how it works." Each time I am able to do this feels like a hard-won but therefore meaningful step toward understanding. I want others to experience this empowering shift. I have a PhD in computer science education, and  I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for actually learning how to design algorithms

Daniel Zingaro Why Daniel loves this book

This is the book that started it all for me… and I think it holds up just fine today. I see value in confronting the old Pascal code every so often: it’s a reminder of how little we need in order to make our algorithms fast, and how much is happening behind the scenes by our modern programming languages. To this day this book has some of my favourite presentations of Dijkstra’s Algorithm and sorting.

By Alfred Aho , Jeffrey Ullman , John Hopcroft

Why should I read it?

1 author picked Data Structures and Algorithms as one of their favorite books, and they share why you should read it.

What is this book about?

The authors' treatment of data structures in Data Structures and Algorithms is unified by an informal notion of "abstract data types," allowing readers to compare different implementations of the same concept. Algorithm design techniques are also stressed and basic algorithm analysis is covered. Most of the programs are written in Pascal.


If you love Jon Kleinberg...

Ad

Book cover of Trusting Her Duke

Trusting Her Duke by Arietta Richmond,

A Duke with rigid opinions, a Lady whose beliefs conflict with his, a long disputed parcel of land, a conniving neighbour, a desperate collaboration, a failure of trust, a love found despite it all.

Alexander Cavendish, Duke of Ravensworth, returned from war to find that his father and brother had…

Book cover of A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills

Daniel Zingaro Author Of Algorithmic Thinking: A Problem-Based Introduction

From my list on for actually learning how to design algorithms.

Why am I passionate about this?

I love pulling back the curtain on how computers work. I want to go from thinking "that's magic" to "that's unbelievably clever but now I understand how it works." Each time I am able to do this feels like a hard-won but therefore meaningful step toward understanding. I want others to experience this empowering shift. I have a PhD in computer science education, and  I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for actually learning how to design algorithms

Daniel Zingaro Why Daniel loves this book

For an overview book that focuses on intuition—a book that is intentionally designed to evade formality—to make my list, it has to be really, really good. This one is. I appreciate the inclusion of real code in multiple programming languages and the step-by-step traces of algorithms. I appreciate the care taken with the Big O material and the way that abstract data types are introduced. This is one of very few books whose recursion material I like—the ‘napkin’ approach to recursion is wonderfully done.  

By Jay Wengrow ,

Why should I read it?

1 author picked A Common-Sense Guide to Data Structures and Algorithms as one of their favorite books, and they share why you should read it.

What is this book about?

If you thought that data structures and algorithms were all just theory, you're missing out on what they can do for your code. Learn to use Big O Notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code's efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. This new edition features practice exercises in every chapter, and new chapters on topics such as dynamic programming and heaps and tries. Get the hands-on info you…


Book cover of Clojure Cookbook: Recipes for Functional Programming

Dmitri Sotnikov Author Of Web Development with Clojure: Build Large, Maintainable Web Applications Interactively

From my list on essential Clojure resources.

Why am I passionate about this?

With over a decade of experience in web development using Clojure and active involvement in the Clojure open source community, I have gathered invaluable insights into effective use of the language. I am eager to share some of the experience and knowledge I have acquired with those new to the language.

Dmitri's book list on essential Clojure resources

Dmitri Sotnikov Why Dmitri loves this book

This book contains many practical examples of solving common programming tasks using Clojure, and it's an excellent choice for a practical Clojure reference.

Developers who are new to the functional programming style will find a lot of useful patterns for solving problems using idiomatic Clojure style. The book is an essential reference for Clojure developers.

By Luke VanderHart , Ryan Neufeld ,

Why should I read it?

1 author picked Clojure Cookbook as one of their favorite books, and they share why you should read it.

What is this book about?

With more than 150 detailed recipes, this cookbook shows experienced Clojure developers how to solve a variety of programming tasks with this JVM language. The solutions cover everything from building dynamic websites and working with databases to network communication, cloud computing, and advanced testing strategies. And more than 60 of the world's best Clojurians contributed recipes. Each recipe includes code that you can use right away, along with a discussion on how and why the solution works, so you can adapt these patterns, approaches, and techniques to situations not specifically covered in this cookbook.
Master built-in primitive and composite data…


Book cover of Introduction to Algorithms

Chris Zimmerman Author Of The Rules of Programming: How to Write Better Code

From my list on programming for people who want to be good at it.

Why am I passionate about this?

I’ve spent most of my life writing code—and too much of that life teaching new programmers how to write code like a professional. If it’s true that you only truly understand something after teaching it to someone else, then at this point I must really understand programming! Unfortunately, that understanding has not led to an endless stream of bug-free code, but it has led to some informed opinions on programming and books about programming.

Chris' book list on programming for people who want to be good at it

Chris Zimmerman Why Chris loves this book

Yes, it’s a textbook, albeit a particularly well-written one. You may already have it on your shelf, if you’ve taken a programming class or two.

I’m way too old to have used CLRS as a textbook, though! For me, it’s an effectively bottomless collection of neat little ideas—an easy-to-describe problem, then a series of increasingly clever ways to solve that problem. How often do I end up using one of those algorithms? Not very often! But every time I read the description of an algorithm, I get a nugget of pure joy from the “aha” moment when I first understand how it works.

If you love Algorithm Design...

Ad

Book cover of The Duke's Christmas Redemption

The Duke's Christmas Redemption by Arietta Richmond,

A Duke who has rejected love, a Lady who dreams of a love match, an arranged marriage, a house full of secrets, a most unneighborly neighbor, a plot to destroy reputations, an unexpected love that redeems it all.

Lady Charlotte Wyndham, given in an arranged marriage to a man she…

Book cover of The Golden Ticket: P, NP, and the Search for the Impossible

John MacCormick Author Of Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers

From my list on algorithms for people who don’t know algorithms.

Why am I passionate about this?

Once upon a time, I was a computer science researcher, working in the research labs of companies like Microsoft and Hewlett-Packard. Later I started teaching computer science to college students and writing books about algorithms. I love computers and I love algorithms. Most of all, I love explaining algorithms to other people. In fact, one of my most important missions in life is to advance the public understanding of computer science and algorithms. So if you read any of the books on my list, you’ll bring me one step closer to achieving my mission. Go ahead, read one now!

John's book list on algorithms for people who don’t know algorithms

John MacCormick Why John loves this book

The most important unanswered question in computer science has a huge public relations problem. Back in the 1970s, this question became known as “P=NP?”—and who could write an exciting book about that? Luckily for us, Lance Fortnow can. As one of the world’s foremost experts on P-vs-NP, he takes us on a wild and truly accessible ride through the most important question about computing. I’ve seen many attempts at making “P=NP?” accessible/understandable/intriguing for non-experts. But Fortnow nails it like nobody else, reformulating P-vs-NP as a search for one of the golden tickets in Charlie and the Chocolate Factory. (Which is another one of my favorite books, even though it’s not going to make it onto this list about algorithms.)

By Lance Fortnow ,

Why should I read it?

1 author picked The Golden Ticket as one of their favorite books, and they share why you should read it.

What is this book about?

The P-NP problem is the most important open problem in computer science, if not all of mathematics. Simply stated, it asks whether every problem whose solution can be quickly checked by computer can also be quickly solved by computer. The Golden Ticket provides a nontechnical introduction to P-NP, its rich history, and its algorithmic implications for everything we do with computers and beyond. Lance Fortnow traces the history and development of P-NP, giving examples from a variety of disciplines, including economics, physics, and biology. He explores problems that capture the full difficulty of the P-NP dilemma, from discovering the shortest…


Book cover of Distributed Algorithms An Intuitive Approach

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why Christian loves this book

The building blocks of software are algorithms, so here our journey continues after you have established a deep understanding of programming languages.

Modern software is predominantly distributed, and since this book doesn't assume much it is the perfect introduction to algorithm analysis, concurrency, and distributed systems. And the best part is that you can just jump in and build these algorithms yourself.

By Fokkink ,

Why should I read it?

1 author picked Distributed Algorithms An Intuitive Approach as one of their favorite books, and they share why you should read it.

What is this book about?

The new edition of a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models.

This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentation, often a stumbling block for students, teaching algorithmic thought rather than proofs and logic. This approach allows the student to learn a large number of algorithms within a relatively short span of time. Algorithms are explained through brief, informal descriptions, illuminating examples, and practical exercises. The examples and exercises allow readers to…


Book cover of The Science of Programming

Federico Kereki Author Of Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript

From my list on the theory and practice of computer programming.

Why am I passionate about this?

I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.

Federico's book list on the theory and practice of computer programming

Federico Kereki Why Federico loves this book

This book is essential in that it follows a systematic and scientific approach to software development, advocating for clarity in expressing algorithms, providing a rigorous framework for designing and reasoning about programs, and, fundamentally, always focusing on formal methods and mathematical techniques to ensure correctness and efficiency in programming code.

Most importantly, the book doesn’t just show you how to prove programs correct, but also teaches how to arrive from a definition to an efficient and correct solution, so I would recommend this to every developer.


By David Gries ,

Why should I read it?

1 author picked The Science of Programming as one of their favorite books, and they share why you should read it.

What is this book about?

Describes basic programming principles and their step-by-
step applications.Numerous examples are included.


If you love Jon Kleinberg...

Ad

Book cover of Old Man Country

Old Man Country by Thomas R. Cole,

This book follows the journey of a writer in search of wisdom as he narrates encounters with 12 distinguished American men over 80, including Paul Volcker, the former head of the Federal Reserve, and Denton Cooley, the world’s most famous heart surgeon.

In these and other intimate conversations, the book…

Book cover of The Art of Computer Programming: Volume 3: Sorting and Searching

Steven S. Skiena Author Of The Algorithm Design Manual

From my list on mathematical and algorithmic thinking.

Why am I passionate about this?

I am Professor of Computer Science at Stony Brook University, and have spent the past thirty years thinking/teaching/writing about algorithms. Algorithms are the really cool thing about computer science, for they form the ideas behind any interesting computer program. And algorithms turn out to be the ideas behind many interesting aspects of life that have nothing to do with computers. I have written six books on algorithms, programming, gambling, and history –including the ranking of the historical significance of all the people in Wikipedia.

Steven's book list on mathematical and algorithmic thinking

Steven S. Skiena Why Steven loves this book

Knuth’s unique mix of playfulness and rigor came to define computer science as an intellectual discipline: computer science didn’t really have anything to do with computers, but everything to do with a particular way of seeing the world.  Just browse and wonder at the beauty and precision achieved in these books.   

Volume 3 (Sorting and Searching) is my personal favorite, and I encourage you to start there. During the pandemic, I finally got around to reading Volume 4A (Combinatorial Algorithms), which was published thirty plus years after Volume 3. It was the same feeling I had watching the movie The Phantom Menace years after growing up with the original Star Wars trilogy. I had forgotten just how unique and distinctive Knuth’s Art of Computer Programming is.

By Donald Knuth ,

Why should I read it?

1 author picked The Art of Computer Programming as one of their favorite books, and they share why you should read it.

What is this book about?

The bible of all fundamental algorithms and the work that taught many of today's software developers most of what they know about computer programming.



-Byte, September 1995



I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up.



-Charles Long



If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole…


Book cover of Algorithms Illuminated (Part 1): The Basics
Book cover of Algorithms
Book cover of Data Structures and Algorithms

Share your top 3 reads of 2025!

And get a beautiful page showing off your 3 favorite reads.

1,210

readers submitted
so far, will you?

5 book lists we think you will like!

Interested in algorithms, computer science, and artificial intelligence?

Algorithms 38 books
Computer Science 35 books