The 11 best Algorithm Books of all time for advanced programmers

A data-backed answer



There are countless lists on the internet claiming to be the list of must-read Algorithm books and it seemed that all those lists always recommended that same books minus two or three odd choices.

Finding good resources for learning programming is always tricky. Every-one has its own opinion about what book is the best to learn, and as we say in french, “Color and tastes should not be argued about”.

However I though it would be interesting to trust the wisdom of the crown and to find the books that appeared the most in those “Best Algorithm Book” lists.

If you want to jump right on the results go take a look below at the full results. If you want to learn about the methodology, bear with me.

I’ve simply asked Google for a few queries like “Best Algorithm Books” and its variations of. I have then scrapped all those pages (using ScrapingBee, a web scraping API I’m working on).

I’ve deduplicated the links and ended up with nearly 29 links. Using the title of the pages I was also able to quickly discards:

I ended up with almost 27 HTML files. I went on opening all the files on my browser, open my chrome inspector, found and wrote the CSS selector matching book titles in the article. This took me around 1hours, almost 30 seconds per page.

This also allowed me to discard even more nonrelevant pages, and I discarded a lot. In the end I compiled around 15 lists into this one.

Book titles were then extracted with manuel extraction and some web scraping.

I ended up with a huge list of books, not usable without some post-processing.

To find the most quoted Algorithm books I needed to normalize my results.

I had to play with all the different variation like “{title} by {author}” or “{title} - {author}”.

Or “{title}:{subtitle}” and “{title}”, or even all the one containing edition number.

And afterquite a bit of manual cleaning.

My list now looked like this:

From there it was easy to compute the most recommended books. You can find all the data used to process this list on this repo. Now let’s take a look at the list:

I've also recently used some data from different book sellers in order to not forget important books and try to give more weight to books with incredible reviews.



Algorithms for Image Processing and Computer Vision

J. R. Parker
% recommend
🛒   Buy
A cookbook of algorithms for common image processing applications Thanks to advances in computer hardware and software, algorithms have been developed that support sophisticated image processing without requiring an extensive background in mathematics. This bestselling book has been fully updated with the newest of these, including 2D vision methods in content-based searches and the use of graphics cards as image processing computational aids.

It’s an ideal reference for software engineers and developers, advanced programmers, graphics programmers, scientists, and other specialists who require highly specialized image processing. Algorithms now exist for a wide variety of sophisticated image processing applications required by software engineers and developers, advanced programmers, graphics programmers, scientists, and related specialists This bestselling book has been completely updated to include the latest algorithms, including 2D vision methods in content-based searches, details on modern classifier methods, and graphics cards used as image processing computational aids Saves hours of mathematical calculating by using distributed processing and GPU programming, and gives non-mathematicians the shortcuts needed to program relatively sophisticated applications

Advanced Algorithms for Neural Networks: A C++ Sourcebook

Timothy Masters
% recommend
🛒   Buy
A valuable working resource for anyone who uses neural networks to solve real-world problems This practical guide contains a wide variety of state-of-the-art algorithms that are useful in the design and implementation of neural networks. All algorithms are presented on both an intuitive and a theoretical level, with complete source code provided on an accompanying disk.

Several training algorithms for multiple-layer feedforward networks (MLFN) are featured. The probabilistic neural network is extended to allow separate sigmas for each variable, and even separate sigma vectors for each class.

The generalized regression neural network is similarly extended, and a fast second-order training algorithm for all of these models is provided. The book also discusses the recently developed Gram-Charlier neural network and provides important information on its strengths and weaknesses.

Readers are shown several proven methods for reducing the dimensionality of the input data. Advanced Algorithms for Neural Networks also covers: Advanced multiple-sigma PNN and GRNN training, including conjugate-gradient optimization based on cross validation The Levenberg-Marquardt training algorithm for multiple-layer feedforward networks Advanced stochastic optimization, including Cauchy simulated annealing and stochastic smoothing Data reduction and orthogonalization via principal components and discriminant functions Economical yet powerful validation techniques, including the jackknife, the bootstrap, and cross validation Includes a complete state-of-the-art PNN/GRNN program, with both source and executable code

Introduction to Logic Programming (Synthesis Lectures on Artificial Intelligence and Machine Le)

Michael Genesereth & Vinay K Chaudhri & Ronald Brachman & Francesca Rossi & Peter Stone
% recommend
🛒   Buy
Logic Programming is a style of programming in which programs take the form of sets of sentences in the language of Symbolic Logic. Over the years, there has been growing interest in Logic Programming due to applications in deductive databases, automated worksheets, Enterprise Management (business rules), Computational Law, and General Game Playing.

This book introduces Logic Programming theory, current technology, and popular applications. In this volume, we take an innovative, model-theoretic approach to logic programming.

We begin with the fundamental notion of datasets, i.e., sets of ground atoms. Given this fundamental notion, we introduce views, i.e., virtual relations; and we define classical logic programs as sets of view definitions, written using traditional Prolog-like notation but with semantics given in terms of datasets rather than implementation.

We then introduce actions, i.e., additions and deletions of ground atoms; and we define dynamic logic programs as sets of action definitions. In addition to the printed book, there is an online version of the text with an interpreter and a compiler for the language used in the text and an integrated development environment for use in developing and deploying practical logic programs.

This is a book for the 21st century: presenting an elegant and innovative perspective on logic programming. Unlike other texts, it takes datasets as a fundamental notion, thereby bridging the gap between programming languages and knowledge representation languages; and it treats updates on an equal footing with datasets, leading to a sound and practical treatment of action and change.

- Bob Kowalski, Professor Emeritus, Imperial College London In a world where Deep Learning and Python are the talk of the day, this book is a remarkable development. It introduces the reader to the fundamentals of traditional Logic Programming and makes clear the benefits of using the technology to create runnable specifications for complex systems.

- Son Cao Tran, Professor in Computer Science, New Mexico State University Excellent introduction to the fundamentals of Logic Programming. The book is well-written and well-structured.

Concepts are explained clearly and the gradually increasing complexity of exercises makes it so that one can understand easy notions quickly before moving on to more difficult ideas. - George Younger, student, Stanford University

Probabilistic Data Structures and Algorithms for Big Data Applications

Andrii Gakhov
% recommend
🛒   Buy
A technical book about popular space-efficient data structures and fast algorithms that are extremely useful in modern Big Data applications. The purpose of this book is to introduce technology practitioners, including software architects and developers, as well as technology decision makers to probabilistic data structures and algorithms

Graph Algorithms: Practical Examples in Apache Spark and Neo4j

Mark Needham & Amy E. Hodler
% recommend
🛒   Buy
Learn how graph algorithms can help you leverage relationships within your data to develop intelligent solutions and enhance your machine learning models. With this practical guide,developers and data scientists will discover how graph analytics deliver value, whether they’re used for building dynamic network models or forecasting real-world behavior.

Mark Needham and Amy Hodler from Neo4j explain how graph algorithms describe complex structures and reveal difficult-to-find patterns—from finding vulnerabilities and bottlenecksto detecting communities and improving machine learning predictions. You’ll walk through hands-on examples that show you how to use graph algorithms in Apache Spark and Neo4j, two of the most common choices for graph analytics

Hands-On Data Structures and Algorithms with Python: Write complex and powerful code using the latest features of Python 3.7, 2nd Edition

Dr. Basant Agarwal & Benjamin Baka
% recommend
🛒   Buy
Learn to implement complex data structures and algorithms using Python Key Features Understand the analysis and design of fundamental Python data structures Explore advanced Python concepts such as Big O notation and dynamic programming Learn functional and reactive implementations of traditional data structures Book Description Data structures allow you to store and organize data efficiently. They are critical to any problem, provide a complete solution, and act like reusable code.

Hands-On Data Structures and Algorithms with Python teaches you the essential Python data structures and the most common algorithms for building easy and maintainable applications. This book helps you to understand the power of linked lists, double linked lists, and circular linked lists.

You will learn to create complex data structures, such as graphs, stacks, and queues. As you make your way through the chapters, you will explore the application of binary searches and binary search trees, along with learning common techniques and structures used in tasks such as preprocessing, modeling, and transforming data.

In the concluding chapters, you will get to grips with organizing your code in a manageable, consistent, and extendable way. You will also study how to bubble sort, selection sort, insertion sort, and merge sort algorithms in detail.

By the end of the book, you will have learned how to build components that are easy to understand, debug, and use in different applications. You will get insights into Python implementation of all the important and relevant algorithms.

What you will learn Understand object representation, attribute binding, and data encapsulation Gain a solid understanding of Python data structures using algorithms Study algorithms using examples with pictorial representation Learn complex algorithms through easy explanation, implementing Python Build sophisticated and efficient data applications in Python Understand common programming algorithms used in Python data science Write efficient and robust code in Python 3.7 Who this book is for This book is for developers who want to learn data structures and algorithms in Python to write complex and flexible programs. Basic Python programming knowledge is expected


Jeff Erickson
% recommend
🛒   Buy
Algorithms are the lifeblood of computer science. They are the machines that proofs build and the music that programs play.

Their history is as old as mathematics itself. This textbook is a wide-ranging, idiosyncratic treatise on the design and analysis of algorithms, covering several fundamental techniques, with an emphasis on intuition and the problem-solving process.

The book includes important classical examples, hundreds of battle-tested exercises, far too many historical digressions, and exaclty four typos. Jeff Erickson is a computer science professor at the University of Illinois, Urbana-Champaign; this book is based on algorithms classes he has taught there since 1998.

High Performance Python: Practical Performant Programming for Humans

Micha Gorelick & Ian Ozsvald
% recommend
🛒   Buy
Your Python code may run correctly, but you need it to run faster. Updated for Python 3, this expanded edition shows you how to locate performance bottlenecks and significantly speed up your code in high-data-volume programs.

By exploring the fundamental theory behind design choices, High Performance Python helps you gain a deeper understanding of Python’s implementation. How do you take advantage of multicore architectures or clusters? Or build a system that scales up and down without losing reliability? Experienced Python programmers will learn concrete solutions to many issues, along with war stories from companies that use high-performance Python for social media analytics, productionized machine learning, and more

Python and Algorithmic Thinking for the Complete Beginner (2nd Edition): Learn to Think Like a Programmer

Aristides S Bouras
% recommend
🛒   Buy
Thoroughly revised for the latest version of Python, this book explains basic concepts in a clear and explicit way that takes very seriously one thing for granted—that the reader knows nothing about computer programming. Addressed to anyone who has no prior programming knowledge or experience, but a desire to learn programming with Python, it teaches the first thing that every novice programmer needs to learn, which is Algorithmic Thinking.

Αlgorithmic Thinking involves more than just learning code. It is a problem-solving process that involves learning how to code.

This edition contains all the popular features of the previous edition and adds a significant number of exercises, as well as extensive revisions and updates. Apart from Python’s lists, it now also covers dictionaries, while a brand new section provides an effective introduction to the next field that a programmer needs to work with, which is Object Oriented Programming (OOP).

This book has a class course structure with questions and exercises at the end of each chapter so you can test what you have learned right away and improve your comprehension. With 250 solved and 450 unsolved exercises, 475 true/false, about 150 multiple choice, and 200 review questions and crosswords (the solutions and the answers to which can be found on the Internet), this book is ideal for novices or average programmers, for self-study high school students first-year college or university students teachers professors anyone who wants to start learning or teaching computer programming using the proper conventions and techniques

Advances in Financial Machine Learning

Marcos Lopez de Prado
% recommend
🛒   Buy
Machine learning (ML) is changing virtually every aspect of our lives. Today ML algorithms accomplish tasks that until recently only expert humans could perform.

As it relates to finance, this is the most exciting time to adopt a disruptive technology that will transform how everyone invests for generations. Readers will learn how to structure Big data in a way that is amenable to ML algorithms; how to conduct research with ML algorithms on that data; how to use supercomputing methods; how to backtest your discoveries while avoiding false positives.

The book addresses real life problems faced by practitioners on a daily basis, and explains scientifically sound solutions using math, supported by code and examples. Readers become active users who can test the proposed solutions in their particular setting

Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People

Aditya Bhargava
% recommend
🛒   Buy
Summary Grokking Algorithms is a fully illustrated, friendly guide that teaches you how to apply common algorithms to the practical problems you face every day as a programmer. You'll start with sorting and searching and, as you build up your skills in thinking algorithmically, you'll tackle more complex concerns such as data compression and artificial intelligence.

Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. Learning about algorithms doesn't have to be boring! Get a sneak peek at the fun, illustrated, and friendly examples you'll find in Grokking Algorithms on Manning Publications' YouTube channel.

Continue your journey into the world of algorithms with Algorithms in Motion, a practical, hands-on video course available exclusively at (​in-motion). Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the Technology An algorithm is nothing more than a step-by-step procedure for solving a problem. The algorithms you'll use most often as a programmer have already been discovered, tested, and proven.

If you want to understand them but refuse to slog through dense multipage proofs, this is the book for you. This fully illustrated and engaging guide makes it easy to learn how to use the most important algorithms effectively in your own programs.

About the Book Grokking Algorithms is a friendly take on this core computer science topic. In it, you'll learn how to apply common algorithms to the practical programming problems you face every day.

You'll start with tasks like sorting and searching. As you build up your skills, you'll tackle more complex problems like data compression and artificial intelligence.

Each carefully presented example includes helpful diagrams and fully annotated code samples in Python. By the end of this book, you will have mastered widely applicable algorithms as well as how and when to use them.

What's Inside Covers search, sort, and graph algorithms Over 400 pictures with detailed walkthroughs Performance trade-offs between algorithms Python-based code samples About the Reader This easy-to-read, picture-heavy introduction is suitable for self-taught programmers, engineers, or anyone who wants to brush up on algorithms. About the Author Aditya Bhargava is a Software Engineer with a dual background in Computer Science and Fine Arts.

He blogs on programming at Table of Contents Introduction to algorithms Selection sort Recursion Quicksort Hash tables Breadth-first search Dijkstra's algorithm Greedy algorithms Dynamic programming K-nearest neighbors.


I hope that you liked this list. Please do not hesitate to check out the other ones I've published.

Keep me updated!

Receive weekly update about best programming books!
Just that, no spam, no bs.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.