本書使用大量插圖與生活實例,讓您以最簡單快速的方式進入演算法領域。翻開本書,您可透過不同主題的圖示與說明,輕鬆理解演算法概念及應用,同時向繁雜的驗證程式說bye-bye!
本書前三章為基礎篇:
- 第 1 章 – 除了學習第一種實用的二進位搜尋演算法外,還將學習大 O 符號。
- 第 2 章 – 學習陣列和連結串列兩種基礎資料結構。這兩種資料結構用來產生更進階的資料結構,例如雜湊表(參閱第 5 章)。
- 第 3 章 – 學習許多演算法(例如第 4 章的快速排序演算法)中經常用到的遞迴法。
本書其餘章節將介紹演算法的各種應用:
- 解決問題的方法 – 這是第 4、8 和 9 章的主題。如果遇到問題卻不知該如何解決,不妨試試分治演算法(第 4 章)或動態規劃演算法(第 9 章)。如果確定找不到解決辦法,就用貪婪演算法(第 8 章)給個近似答案。
- 雜湊表 – 這是第 5 章的主題。雜湊表是非常實用的資料結構,包含多組鍵值對,就像一個人的姓名與其電子信箱地址,或使用者名稱與其密碼配對一樣。
- 圖形演算法 – 這是第 6 和 7 章的主題。圖形是網路模型化的途徑,包括社群網路、道路網、神經元網路,或任何其他組合網路。廣度優先搜尋法(第 6 章)和代克思托演算法(第 7 章)是在網路兩點之間搜尋最短距離的演算法,可用來計算兩人之間的分離程度或到達目標的最短路徑。
- K 最近鄰(KNN)演算法 – 這是第 10 章的主題。KNN 是一種簡易機器學習演算法,可用來建構推薦系統、OCR 引擎、股票價值預測系統,以及涉及價值預測的所有其他系統或物件分類系統。
- 下一步 – 這是第 11 章的主題,介紹 10 種值得繼續學習的演算法。
*全書程式碼範例使用Python 2.7,請至松崗官網下載範例程式碼。
*本書適用:
- 程式設計愛好者
- 想重新熟悉演算法的電腦工程師
- 對編寫程式感興趣的物理學、數學和其他專業人員
1. 涵蓋搜尋、排序和圖形等10種最常用的演算法。
2. 包含400張可愛、實用的插圖與逐步詳解,幫助您將概念視覺化,有如看卡通般的完成學習。
3. 比較不同演算法的效能,讓您能在遇到問題時,選出最適合解決問題的演算方法。
4. 書末附有全書習題解答,讓您完成書中練習後可以馬上對照使用,找出錯誤及時修正。