num_pages: 408
description: A hands-on, problem-based introduction to building algorithms and data structures to solve problems with a computer.Algorithmic Thinking will teach you how to solve challenging programming problems and design your own algorithms. Daniel Zingaro, a master teacher, draws his examples from world-class programming competitions like USACO and IOI. You'll learn how to classify problems, choose data structures, and identify appropriate algorithms. You'll also learn how your choice of data structure, whether a hash table, heap, or tree, can affect runtime and speed up your algorithms; and how to adopt powerful strategies like recursion, dynamic programming, and binary search to solve challenging problems.Line-by-line breakdowns of the code will teach you how to use algorithms and data structures  Each problem in this book is available on a programming-judge website. You'll find the site's URL and problem ID in the description. What's better than a free correctness check?
language: English
title: Algorithmic Thinking: A Problem-Based Introduction
publisher: No Starch Press