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

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

  • Downloads:1063
  • Type:Epub+TxT+PDF+Mobi
  • Create Date:2021-09-22 09:56:34
  • Update Date:2025-09-07
  • Status:finish
  • Author:Tim Roughgarden
  • ISBN:0999282948
  • Environment:PC/Android/iPhone/iPad/Kindle

Summary

Algorithms are the heart and soul of computer science。 Their applications range from network routing and computational genomics to public-key cryptography and machine learning。 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 for anyone with at least a little programming experience。 The exposition emphasizes the big picture and conceptual understanding over low-level implementation and mathematical details---like a transcript of what an expert algorithms tutor would say over a series of one-on-one lessons。 Part 3 covers greedy algorithms (scheduling, minimum spanning trees, clustering, Huffman codes) and dynamic programming (knapsack, sequence alignment, shortest paths, optimal search trees)。

Download

Reviews

José

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。。。

Heather Fryling

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。

Tianyao Chen

This book offers the most lucid explanations for DP I’ve seen!

Anthony O'Connor

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 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。 。。。more

Minh

Hands down the best explanation of dynamic programming I've ever read anywhere。 Thank you so much, professor Roughgarden! Hands down the best explanation of dynamic programming I've ever read anywhere。 Thank you so much, professor Roughgarden! 。。。more

Bugzmanov

I've enjoyed the book series significantly more than corresponding Coursera lectures。 I've enjoyed the book series significantly more than corresponding Coursera lectures。 。。。more

Michael Driscoll

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 lec 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, AlgorithmsKT - Kleinberg and Tardos, Algorithm DesignSW - 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 23DPV: Sections 5。1。1, 5。1。2, and 5。1。5KT: Sections 4。1, 4。2, 4。3, and 4。5SW: Section 4。3Week 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。4KT: Sections 4。5-4。7SW: Sections 1。5 and 4。3Week 3 (Huffman codes; introduction to dynamic programming)CLRS: Chapter 16 (Section 3) and Chapter 15 (Section 3)DPV: Sections 5。2 and 6。7KT: Sections 4。8, 6。1, 6。2SW: Section 5。5Week 4 (Advanced dynamic programming: the knapsack problem, sequence alignment, and optimal binary search trees。)CLRS: Chapter 15DPV: Chapter 6KT: Sections 6。3-6。6And for when Book 4 is published。。。Week 1 (Bellman-Ford, All-Pairs Shortest Path)DPV: 4。6, 6。6KT: 6。8 CLRS: 24。1, 25Week 2: (NP-Complete Problems, Beating Brute-Force Search)CLRS Chapter 34DPV Section 8。1, 8。2, 9。1KT Sections 8。1-8。4, 8。10, 10。1, 10。2Week 3: (Approximation Algorithms)CLRS Sections 35。1-35。3DPV Section 9。2KT Sections 11。1-11。3, 11。8Week 4: (Local Search, Wider World of Algorithms)DPV Section 9。3KT Sections 12。1, 12。4, 12。5 。。。more