About Algorithmic Thinking
Write better, faster code. I wrote Algorithmic Thinking: A Problem-Based Introduction to teach algorithms and data structures in the context of solving programming competition problems.
Consistently a This Month’s Bestsellers No Starch Press book.
Learn how to use recursion and why you’d want to.
Demystify dynamic programming and use it to turbocharge your code.
Learn all about graphs and how to use them to model and solve problems that seemingly have nothing to do with graphs.
What’s a data structure, anyway? You’ll find out! You’ll also learn about hash tables, heaps, segment trees, and union-find data structures, and when to use them to make your code super efficient.
No pseudocode. No math. I wrote this book for anyone who wants to become a better programmer, anyone who wants to improve their algorithmic thinking, anyone who wants to understand what makes code fast. I hope I can help you learn.
Ask your local bookshop, or buy online:
Here’s what expert algorithmists and programmers say about the book:
- “The best way to read Algorithmic Thinking is to treat it like a problem set that comes packaged with the world’s most detailed answer key.” - Review by Duncan Smith
- “Problem solving is a raw, real journey, and this book captures its spirit perfectly.” - Review by Ava Pun
- “With Zingaro as a tutor by your side, you’ll learn, through practice on challenging competition problems, a repeatable process for figuring out and deftly applying the right algorithmic tools for the job. And you’ll learn it all from a book that exudes clarity, humor, and just the right dose of Canadian pride. Happy problem-solving!” - Review by Dr. Tim Roughgarden
- “Overall, the book is clearly written, the topics are well-chosen, and the book is a good introduction to some important competitive programming techniques.” - Review by Dr. Antti Laaksonen
- UTM professor draws on past struggles to write witty, hands-on programming book
- Featured on Awesome Competitive Programming, “A curated list of awesome Competitive Programming, Algorithm and Data Structure resources”