Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

前言

很多人一聽到「資料結構」或「演算法」,腦中就會先浮現考試題、競賽題,或一大串看起來離生活很遠的符號。

但其實我們每天都在用演算法思維做事。像是排今天先做什麼、從一堆資料裡找重點、把重複資料清掉、安排誰來接任務,這些都和資料結構與演算法有關。

這本書不是要把你訓練成解題選手,而是想陪你建立一種更清楚的思考方式:

這本書怎麼跟一般教材不一樣

這本書盡量不用太重的學院口吻,也不會一開始就把你丟進太抽象的定義裡。每一章都會先從一個一般人熟悉的情境開始,例如:

等你先知道問題在說什麼,再回頭看程式和演算法,就比較不容易覺得它們只是硬塞進來的術語。

本書維持的三個原則

  1. 可理解:先講人話,再講做法。

  2. 可執行:每章都有可以實際跑的範例。

  3. 可驗證:每章都有測試,讓結果不是只靠感覺判斷。

你可以怎麼使用這本書

你可以把它當成一本從頭讀的入門書,也可以把它當成工作中遇到某類問題時的查閱手冊。

如果你平常不寫程式,也沒關係。光是把每章的情境、輸入、輸出和限制看懂,就已經能幫你把很多事情想得更清楚。

如果你會寫 Python,那這本書也可以讓你把零散的技巧,整理成比較完整的問題解法。

章節導覽

這本書分為 12 個主題,你可以按順序讀,也可以挑感興趣的直接切入:

關於這個電子書專案

這份內容同時也是一個可持續更新的電子書網站。書稿、範例、測試和網站建置放在同一個專案裡,目的不是炫技,而是讓每一章都能一直保持可讀、可跑、也可修。

希望你讀完後,不只更懂資料結構和演算法,也更知道怎麼把它們用在自己的生活和工作裡。