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 like:
The breadth-first search algorithm to find the optimal way to play a board
game or find the best way to translate a book
Dijkstra's algorithm to determine how many mice can exit a maze or the number
of fastest routes between two locations
The union-find data structure to answer questions about connections in a
social network or determine who are friends or enemies
The heap data structure to determine the amount of money given away in a
promotion
The hash-table data structure to determine whether snowflakes are unique or
identify compound words in a dictionary
NOTE: 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?
Також купити книгу Algorithmic Thinking: A Problem-Based Introduction, Daniel
Zingaro Ви можете по посиланню