Accessible, no-nonsense, and programming language-agnostic introduction to algorithms. Includes solutions to all quizzes and selected problems, and a series of YouTube videos by the author accompanies the book. Part 2 covers graph search and its applications, shortest-path algorithms, and the applications and implementation of several data heaps, search trees, hash tables, and bloom filters. (Part 1 is not a prerequisite.)
Very similar to Part 1, this book is almost verbatim the lectures from the Coursera course "Graph Search, Shortest Paths, and Data Structures" of the Algorithms Specialization, sections IX-XVI. I don't just mean the lecture notes, but what the Professor/Author speaks in the videos. That's not necessarily a bad thing, but just something to keep in mind.
On its own I'd say the book is a good textbook, but its real purpose is to be supplementary material to the Coursera lectures. This book does contain section IX Graphs and the Contraction Algorithm, which are covered in the first Coursera course even though they really fit better in this book. Basically if you're taking the Coursera series, get both books as this one will help with the final programming assignment.
In Summary: If you want to learn Algorithms on your own, this isn't for you. If you are taking the Coursera Algorithms Specialization and find it easier to read than listen, this is a good book to get.
Also once Roughgarden published his book he removed the suggested readings from the other Algo text books, which... I find a bit annoying. The weeks below don't line up to what you see on Coursera as originally the courses were two six-week courses as opposed to four four-week courses. Here are the other textbooks readings:
CLRS - Cormen, Leiserson, Rivest, and Stein, Introdution to Algorithms (3rd edition) DPV - Dasgupta, Papadimitriou, and Vazirani, Algorithms KT - Kleinberg and Tardos, Algorithm Design SW - Sedgewick and Wayne, Algorithms (4th edition)
I skimmed through a lot of books focusing on algorithms, and honestly, covering the most important data structures nearing the end of Part 2 was pretty interesting for me.
The example questions and the text was a bit misaligned this time compared to the first part, but other than this minor issue, I learned a lot, maybe to a lesser degree compared to Part 1, since I took some courses on Network Analysis already.
Programming exercises are on point, and straightforward enough that they could be easily generalized. Writing my own implementation of Heap for example was pretty enlightening.
Looking forward to the day I will put the info into good use.
Muy fácil de digerir. Los algoritmos son totalmente comprensibles, la redacción es amena, y hasta los programadores con años de experiencia podemos aprender cosas de este libro.
Además de los algoritmos básicos de grafos, y el repaso a estructuras como hash tables, he adquirido recursos nuevos, como el Heap o los Bloom Filters (de los que había sentido hablar pero nunca me había parado a entender)
It's little different compare to knuth. But I think it's more practical book compare to others. P. S. I think strong part of it it's explanations of algorithms . I able to understand what author try to explain .
This whole series is fantastic for those wanting to gain a deep understanding of algorithms. The one drawback is that there are no solutions for most of the problems.
Graphs and shortest paths. Heaps, binary search trees and hash tables. Fundamental. Well explained. There is a widespread misapprehension that Djikstra’s shortest path algorithm for directed weighted graphs is O(n^2). The author clears this up. Well written with good examples.