Algorithmic Thinking, 2/e
By: Daniel Zingaro | Publisher: No Starch Press | Year: 2023
ISBN: 9781718503229
MRP: Rs. 4,924.00
You Pay: Rs. 4,186.00
You save: Rs. 738.00 ( 15% )
Usually ships in 2-3 days
Reward points: 41 points
Available for delivery worldwide.
Description
Get in the game and learn essential computer algorithms by solving competitive programming problems, in the fully revised second edition of the bestselling original. (Still no math required!)
Knowing how to design algorithms will take you from being a good programmer to a great programmer. This completely revised second edition teaches you how to design your own rocket-fast, right-for-the-task algorithms—minus the proofs and complex math. Forget the useless pseudocode and played-out examples you’ve seen in other books. Author and award-winning educator Dan Zingaro draws problems straight from online programming competitions to rigorously teach you all of the heavyweights you need to know, like hash tables, recursion, trees, graphs, and heaps. As he guides you to the perfect algorithmic solution for each unique programming puzzle, you’ll build up a toolkit of go-to algorithms for quickly and correctly solving any problem you come across.
The second edition features several entirely new chapters on dynamic programming and randomized algorithms, as well as more effective problems and enhanced explanations. Code examples are provided using the C language.
Learn how to:
- Classify problems, choose data structures, and identify appropriate algorithms
- Choose between data structures like hash tables, heaps, or trees, based on how they affect runtime and speed
- Adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems
-
Apply the breadth-first search algorithm to find the optimal way to play a board game, Dijkstra’s algorithm to determine the fastest routes between two locations, and many moreGet in the game and learn essential computer algorithms by solving competitive programming problems, in the fully revised second edition of the bestselling original. (Still no math required!)
Knowing how to design algorithms will take you from being a good programmer to a great programmer. This completely revised second edition teaches you how to design your own rocket-fast, right-for-the-task algorithms—minus the proofs and complex math. Forget the useless pseudocode and played-out examples you’ve seen in other books. Author and award-winning educator Dan Zingaro draws problems straight from online programming competitions to rigorously teach you all of the heavyweights you need to know, like hash tables, recursion, trees, graphs, and heaps. As he guides you to the perfect algorithmic solution for each unique programming puzzle, you’ll build up a toolkit of go-to algorithms for quickly and correctly solving any problem you come across.The second edition features several entirely new chapters on dynamic programming and randomized algorithms, as well as more effective problems and enhanced explanations. Code examples are provided using the C language.Learn how to:- Classify problems, choose data structures, and identify appropriate algorithms
- Choose between data structures like hash tables, heaps, or trees, based on how they affect runtime and speed
- Adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems
- Apply the breadth-first search algorithm to find the optimal way to play a board game, Dijkstra’s algorithm to determine the fastest routes between two locations, and many more
About the Author
Dr. Daniel Zingaro is an award-winning Assistant Professor of Mathematical and Computational Sciences at the University of Toronto Mississauga, where he is well known for his uniquely interactive approach to teaching and internationally recognized for his expertise in Active Learning. He is also the author of Learn to Code by Solving Problems (No Starch Press, 2021).
Table of contents
Foreword
Introduction
Acknowledgments
Chapter 1: Hash Tables
Chapter 2: Trees and Recursion
Chapter 3: Memoization and Dynamic Programming
Chapter 4: Advanced Memoization and Dynamic Programming
Chapter 5: Graphs and Breadth-First Search
Chapter 6: Shortest Paths in Weighted Graphs
Chapter 7: Binary Search
Chapter 8: Heaps and Segment Trees
Chapter 9: Union-Find
Chapter 10: Randomization
Afterword
Appendix A: Algorithm Runtime
Appendix B: Because I Can’t Resist
Appendix C: Problem Credits
Index