Jump to ratings and reviews
Rate this book

Algorithmic Thinking: A Problem-Based Introduction

Rate this book
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?

408 pages, Paperback

Published December 15, 2020

120 people are currently reading
442 people want to read

About the author

Daniel Zingaro

6 books4 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
21 (50%)
4 stars
19 (45%)
3 stars
2 (4%)
2 stars
0 (0%)
1 star
0 (0%)
Displaying 1 - 5 of 5 reviews
Profile Image for Jeethu Rao.
8 reviews2 followers
February 1, 2021
This is a great book that approaches algorithmic thinking from the competitive programming angle. The book uses the C programming language to explore and solve interesting problems that match the theme of each chapter, from past programming contests. Most of the problems in it are way harder than the typical SV SWE interview questions. If your motivation for reading the book is to ace coding interviews, you’ll perhaps be better served by reading more pedestrian books.
Profile Image for Ben.
2,729 reviews225 followers
June 18, 2024
Thinking In Algorithms

This is a great book on algorithms.

I learned a lot, and Zingaro had a lot of great examples and descriptions throughout the book.

I am glad I picked this up, and it ended up helping my own personal coding projects a lot.

Great inspiration on how to build up your code.

Check it out!

4.6/5
2 reviews1 follower
Read
December 14, 2020
I was recently asked to review this book by the author. The book teaches algorithms based on problems from various programming competitions. It covers a lot of the basic algorithms and data structures you would see in a typical programming contest.

The author manages to motivate the various algorithms and data structures very well by showing why more naive solutions fail to solve the problems. He then proceeds to flesh out the faster solution by iterating on the existing code. I believe this approach helps in showing exactly why algorithms and data structures are useful and also demonstrates a way to approach these kinds of problems. This is something a lot of other textbooks fail to do.

Overall I think it's a very good book. It is not as comprehensive as a university course on algorithms, but presents the solutions in a very nice way. I would recommend it to someone who is familiar with programming but has not yet been introduced to algorithms and data structures.
Profile Image for Sophie.
292 reviews
September 28, 2021
The programming language used in this book is C. The author compiles a variety set of problems and inspires the readers on solving the problems step by step.

The contents include eight parts:
1. hash tables
2. trees and recursion
3. memoization and dynamic programming
4. graphs and BFS
5. shortest paths in weighted graphs
6. heaps and segment trees
7. heaps and segment trees
8. union-find

This is a book good for reference and revisiting time after time.
Profile Image for Karkareads.
71 reviews
April 14, 2025
[Współpraca reklamowa Wydawnictwo Helion]

“Myślenie algorytmiczne jak rozwiązywać problemy za pomocą algorytmów” to kolejna informatyczna książka, po którą sięgnęłam. Jej autorem jest Daniel Zingaro, wykładowca Uniwersytetu w Toronto, zanany z nowoczesnego i przystępnego podejścia do nauczania informatyki.

Autor uważa, że możemy rozwijać swoje umiejętności programistyczne tylko w dwóch przypadkach - kiedy wykonujemy ćwiczenia i mamy dobrego trenera. W “Myśleniu algorytmicznym” autor wciela się właśnie w rolę naszego nauczyciela. Nie znajdziemy tu listy zagadnień do “wykucia” ale praktyczne podejście do rozwiązania problemów programistycznych przy pomocy algorytmów. W każdym z rozdziałów znajdziemy zadania, a autor pokaże nam co już wiemy i czego potrzebujemy do rozwiązania ich. 
Zadania i problemy przedstawione w książce pochodzą z konkursów programistycznych i często są modyfikacjami klasycznych zagadnień. Kod przedstawiony jest w języku C. 

“Myślenie algorytmiczne “jest skierowane głównie do programistów, którzy chcą się nauczyć myśleć algorytmiczne i dzięki temu rozwiązywać złożone problemy, w sposób jak najbardziej optymalny.  
Po dokładnym przepracowaniu tej książki zyskamy nie tylko wiedzę, ale i praktyczne umiejętności, które przydadzą się w pracy z kodem. 

Jeśli lubicie uczyć się przez działanie i chcecie spojrzeć na programowanie z nowej perspektywy to “Myślenie algorytmiczne “jest zdecydowanie dla was.
Displaying 1 - 5 of 5 reviews

Can't find what you're looking for?

Get help and learn more about the design.