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