Résumé
Algorithms Illuminated teaches the basics of algorithms in the most accessible way imaginable, with thorough coverage of asymptotic analysis, graph search and shortest paths, data structures, divide-and-conquer algorithms, greedy algorithms, dynamic programming, and NP-hard problems.In Algorithms Illuminated, Tim Roughgarden teaches the basics of algorithms in the most accessible way imaginable. This Omnibus Edition contains the complete text of Parts 1-4, with thorough coverage of asymptotic analysis, graph search and shortest paths, data structures, divide-and-conquer algorithms, greedy algorithms, dynamic programming, and NP-hard problems. Hundreds of worked examples, quizzes, and exercises, plus comprehensive online videos, help readers become better programmers; sharpen their analytical skills; learn to think algorithmically; acquire literacy with computer science's greatest hits; and ace their technical interviews.Part I. The Basics: 1. Introduction; 2. Asymptotic notation; 3. Divide-and-Conquer algorithms; 4. The master method; 5. QuickSort; 6. Linear-time selection; Part II. Graph Algorithms and Data Structures: 7. Graphs: the Basics; 8. Graph search and its applications; 9. Dijkstra's shortest-path algorithm; 10. The heap data structure; 11. Search trees; 12. Hash tables and Bloom filters; Part III. Greedy Algorithms and Dynamic Programming; 13. Introduction to greedy algorithms; 14. Huffman codes; 15. Minimum spanning trees; 16. Introduction to dynamic programming; 17. Advanced dynamic programming; 18. Shortest paths revisited; Part IV. Algorithms for NP-Hard Problems; 19. What is NP-Hardness?; 20. Compromising on correctness: efficient inexact algorithms; 21. Compromising on speed: exact inefficient algorithms; 22. Proving problems NP-hard; 23. P, NP, and all that; 24. Case study: the FCC incentive auction; Appendix A. Quick review of proofs By induction; Appendix B. Quick review of discrete probability; Epilogue. A field guide to algorithm design; Hints and solutions.Tim Roughgarden is a Professor of Computer Science at Columbia University. His research, teaching, and expository writings have been recognized by a Presidential Early Career Award for Scientists and Engineers, the ACM Grace Murray Hopper Award, the EATCS-SIGACT Goedel Prize, a Guggenheim Fellowship, the INFORMS Lancaster Prize, and a Tau Beta Pi Teaching Award. His other books include Twenty Lectures on Algorithmic Game Theory (2016) and Beyond the Worst-Case Analysis of Algorithms (2021).