Jump to ratings and reviews
Rate this book

Algorithms Illuminated #3

Algorithms Illuminated (Part 3): Greedy Algorithms and Dynamic Programming

Rate this book
Accessible, no-nonsense, and programming language-agnostic introduction to algorithms. Includes hints or solutions to all quizzes and problems, and a series of YouTube videos by the author accompanies the book. Part 3 covers greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, shortest paths, optimal search trees).

Kindle Edition

Published April 30, 2019

12 people are currently reading
273 people want to read

About the author

Tim Roughgarden

15 books61 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
40 (62%)
4 stars
19 (29%)
3 stars
3 (4%)
2 stars
1 (1%)
1 star
1 (1%)
Displaying 1 - 9 of 9 reviews
Profile Image for Michael Driscoll.
65 reviews6 followers
August 14, 2019
Very similar to Part 1 & 2, this book is almost verbatim the lectures from the Coursera course "Greedy Algorithms, Minimum Spanning Trees, and Dynamic Programming" of the Algorithms Specialization, sections XVII-XXVIII. 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. 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 as I like to read multiple explanations of the same algorithm to get a better handle on it. Here are the other textbooks readings:

CLRS - Cormen, Leiserson, Rivest, and Stein, Introduction to Algorithms (3rd edition)
DPV - Dasgupta, Papadimitriou, and Vazirani, Algorithms
KT - Kleinberg and Tardos, Algorithm Design
SW - Sedgewick and Wayne, Algorithms (4th edition)

Week 1 (Two motivating applications; selected review; introduction to greedy algorithms; a scheduling application; Prim's MST algorithm)

CLRS: Chapter 16 (Sections 1 and 2) and Chapter 23
DPV: Sections 5.1.1, 5.1.2, and 5.1.5
KT: Sections 4.1, 4.2, 4.3, and 4.5
SW: Section 4.3

Week 2 (Kruskal's MST algorithm and applications to clustering; advanced union-find)

CLRS: Chapter 21 and Chapter 23 (Section 2)
DPV: Sections 5.1.3 and 5.1.4
KT: Sections 4.5-4.7
SW: Sections 1.5 and 4.3

Week 3 (Huffman codes; introduction to dynamic programming)

CLRS: Chapter 16 (Section 3) and Chapter 15 (Section 3)
DPV: Sections 5.2 and 6.7
KT: Sections 4.8, 6.1, 6.2
SW: Section 5.5

Week 4 (Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees.)

CLRS: Chapter 15
DPV: Chapter 6
KT: Sections 6.3-6.6

And for when Book 4 is published...
Week 1 (Bellman-Ford, All-Pairs Shortest Path)

DPV: 4.6, 6.6
KT: 6.8
CLRS: 24.1, 25

Week 2: (NP-Complete Problems, Beating Brute-Force Search)

CLRS Chapter 34
DPV Section 8.1, 8.2, 9.1
KT Sections 8.1-8.4, 8.10, 10.1, 10.2


Week 3: (Approximation Algorithms)

CLRS Sections 35.1-35.3
DPV Section 9.2
KT Sections 11.1-11.3, 11.8


Week 4: (Local Search, Wider World of Algorithms)
DPV Section 9.3
KT Sections 12.1, 12.4, 12.5
Profile Image for Anthony O'Connor.
Author 5 books31 followers
May 23, 2020
Great.

Greedy algorithms. Eg. spanning tree algorithms. Dynamic programming. Eg. knapsack problem. I finally get it after all this time. Thank you. The usual solid explanations and excellent examples. There is even an answer to that enduring and hitherto unanswered question, ‘why is it called dynamic programming’.
The answer should be liked by all programmers. Getting around the obtuseness of inept upper management by adept naming choices.
Another superb intro, well worth going through. A bit too much to just read straight through. Slow down. Nut it out.
And Now. When is part 4 coming out. Eagerly awaited.
Profile Image for Emre Ergin.
Author 10 books83 followers
November 2, 2023
My only gripe with the book is not having a full solution manual at the end.

It has three main strengths.

1. Read as a whole, the chapters built an interconnected story touching upon different parts of the algorithm science. This is not done haphazardly, the story flows nicely, starting from simple Karatsuba algorithm to the mind bending Floyd Warshall.

2. Throughout the books, no concept that was covered felt unnecessary. Unnecessary both in the sense of the flow which was mentioned in point 1, and also no unnecessary complexity. There are way more elegant algorithms that solves similar problems with much more strength which the books did not cover (or only discussed them in footnotes or in challenge problems), but as they are natural extensions of the ideas covered, the book feels (not actually is) complete without feeling overwhelming.

3. The pedagogical building steps of any algorithm covered is just amazing. It starts from the simplest assumptions, does not assume anything too technical from the reader (then again I have a PhD so maybe I am lying) and progresses step by step. It almost tries to make you come up with the next step of the argument he is building, so the text actually feels like a story. This is done in a way that also does not give up rigor, as running time and correctness proofs are covered most of the time.

As a textbook, these series may be leaving too may wholes for a compsci curriculum, but for someone like me who is self learning, I can't imagine any book which might be superior. The full book series are also accompanied by the videos on the web page of the author, with some extra material for the ones that wants to go deeper.

A definite recommendation from me.
10 reviews
September 14, 2021
Sigue siendo un fantástico libro, y un imprescindible junto a los demás libros de Algorithms Illuminated.

No obstante, este se me ha hecho un poco más duro: los greedy algorithms son muy fáciles de entender pero a menudo difíciles de demostrar. También el concepto de Dynamic Programming, al que se dedica medio libro, es suficientemente extenso y complejo como para necesitar varios tochos más...
Profile Image for Сергей Польшин.
16 reviews
Read
February 25, 2023
Very detail explanation

1. I have full serie of books so i alredy know how author explained and combine his material. And i like it
2. A lot of examples.
3. Section with graphs algorythms
Profile Image for Bugzmanov.
231 reviews97 followers
February 15, 2020
I've enjoyed the book series significantly more than corresponding Coursera lectures.
Profile Image for Heather Fryling.
469 reviews4 followers
November 8, 2020
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.
1 review
April 4, 2021
Hands down the best explanation of dynamic programming I've ever read anywhere. Thank you so much, professor Roughgarden!
Displaying 1 - 9 of 9 reviews

Can't find what you're looking for?

Get help and learn more about the design.