Algorithmic Thinking: A Problem-Based Introduction
暫譯: 算法思維:基於問題的入門指南

Zingaro, Daniel

買這商品的人也買了...

商品描述

A hands-on, problem-based introduction to building algorithms and data structures to solve problems with a computer.

Programming is about using a computer to solve problems, and algorithms and data structures are the building blocks of computer programs. For each problem that a programmer wants to solve, they employ an algorithm: a sequence of steps for solving the problem. Many books teach algorithms independently of specific problems, but this book uses careful explanations, examples, and arguments, rather than formal mathematics and proofs which make it difficult for you to connect what you are learning to what you can do with that learning. Algorithmic Thinking: A Problem-Based Introduction teaches you to use the best algorithms and data structures for a given situation by walking you through solving problems pulled from international programming competitions, such as how to determine whether snowflakes are unique; how to win a game in the minimum number of moves; how to find the number of ways to get to someone's house; how to escape a cave in as few steps as possible; and so on.

You'll tackle challenging topics like recursion, dynamic programming, graphs, greedy algorithms, heaps, hash tables, segment trees, and other data structures for efficiently handling data. The book contains no pseudocode: all code is written in C and is thoroughly explained in the text (C is a de facto programming language for programming competitions). By the end of the book, you should understand the importance of carefully working through a problem, and why it pays to organize data using data structures.

商品描述(中文翻譯)

一個實作導向、以問題為基礎的算法與資料結構建構介紹,旨在利用電腦解決問題。

程式設計是利用電腦解決問題,而算法與資料結構則是電腦程式的基石。對於每一個程式設計師想要解決的問題,他們都會使用一個算法:解決問題的步驟序列。許多書籍獨立於特定問題教授算法,但本書則透過仔細的解釋、範例和論證,而非正式的數學和證明,使你能夠將所學與實際應用連結起來。《Algorithmic Thinking: A Problem-Based Introduction》教你如何在特定情境下使用最佳的算法和資料結構,透過解決來自國際程式設計競賽的問題,例如如何判斷雪花是否獨特;如何在最少的步數內贏得遊戲;如何計算到某人家的路徑數量;如何在最少的步驟內逃出洞穴;等等。

你將面對挑戰性的主題,如遞迴、動態規劃、圖形、貪婪算法、堆、哈希表、區間樹及其他有效處理資料的資料結構。本書不包含偽代碼:所有代碼均以C語言撰寫,並在文本中進行詳細解釋(C語言是程式設計競賽的事實上標準語言)。在本書結束時,你應該能理解仔細解決問題的重要性,以及為何使用資料結構來組織資料是有益的。

作者簡介

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.

作者簡介(中文翻譯)

丹尼爾·辛加羅博士是多倫多密西沙加大學數學與計算科學的獲獎助理教授,以其獨特的互動教學方法而聞名,並因其在主動學習方面的專業知識而享有國際聲譽。