
0人評分過此書
演算法:圖解邏輯思維 + Python程式實作.王者歸來
★★★★★【650張圖例】+【圖解演算法原理和邏輯思維】★★★★★
★★★★★【20個主題】+【149個Python程式實例】★★★★★
★★★★★【邏輯思維】+【Python實作】=【演算法的精髓】★★★★★
本書的第一版曾經獲得博客來與天瓏暢銷排行榜第1名,撰寫這本書時採用下列原則。
1:彩色圖片引導讀者認識演算法的邏輯思維。
2:Python程式實作演算法原理。
3:章節習題引導讀者複習與自我練習。
當讀者遵循這步驟學習時,相信一定可以完整學習演算法的相關知識,本書的主體內容如下:
☆ 20個主題
★ 認識時間複雜度和空間複雜度
☆ 7大資料結構完整圖說與程式實例
★ 7大排序法完整圖說與程式實例
☆ 遞迴與回溯演算法
★ 電腦領域的經典演算法八皇后和河內塔
☆ 碎形與VLSI設計應用
★ 圖形理論
☆ 深度、寬度優先搜尋
★ Bellman-Ford演算法
☆ Dijkstra’s演算法
★ 貪婪演算法
☆ 動態規劃演算法
★ 資訊安全演算法
☆ 摩斯與凱薩密碼
★ 金鑰系統觀念,解說設計金鑰方法或是應用目前市面上成熟的金鑰
☆ 訊息鑑別碼(Message authentication code)
★ 數位簽章(Digital Signature)
☆ 數位憑證(Digital certificate)
★ 基礎機器學習KNN演算法
☆ K-means演算法
★ 網頁排名演算法
☆ 常見的演算法考題與Leetcode考題
★★★★★【20個主題】+【149個Python程式實例】★★★★★
★★★★★【邏輯思維】+【Python實作】=【演算法的精髓】★★★★★
本書的第一版曾經獲得博客來與天瓏暢銷排行榜第1名,撰寫這本書時採用下列原則。
1:彩色圖片引導讀者認識演算法的邏輯思維。
2:Python程式實作演算法原理。
3:章節習題引導讀者複習與自我練習。
當讀者遵循這步驟學習時,相信一定可以完整學習演算法的相關知識,本書的主體內容如下:
☆ 20個主題
★ 認識時間複雜度和空間複雜度
☆ 7大資料結構完整圖說與程式實例
★ 7大排序法完整圖說與程式實例
☆ 遞迴與回溯演算法
★ 電腦領域的經典演算法八皇后和河內塔
☆ 碎形與VLSI設計應用
★ 圖形理論
☆ 深度、寬度優先搜尋
★ Bellman-Ford演算法
☆ Dijkstra’s演算法
★ 貪婪演算法
☆ 動態規劃演算法
★ 資訊安全演算法
☆ 摩斯與凱薩密碼
★ 金鑰系統觀念,解說設計金鑰方法或是應用目前市面上成熟的金鑰
☆ 訊息鑑別碼(Message authentication code)
★ 數位簽章(Digital Signature)
☆ 數位憑證(Digital certificate)
★ 基礎機器學習KNN演算法
☆ K-means演算法
★ 網頁排名演算法
☆ 常見的演算法考題與Leetcode考題
-
第一章 演算法基本觀念
-
1-1 電腦的演算法
-
1-2 遞迴函數設計
-
1-2-1 從掉入無限遞迴說起
-
1-2-2 非遞迴式設計階乘數函數
-
1-2-3 從一般函數進化到遞迴函數
-
-
1-3 好的演算法與不好的演算法
-
1-3-1 不好的演算法
-
1-3-2 好的演算法
-
-
1-4 程式執行的時間量測方法-時間複雜度
-
1-4-1 基本觀念
-
1-4-2 時間量測複雜度
-
-
1-5 記憶體的使用-空間複雜度
-
1-5-1 基本觀念
-
1-5-2 常見的空間複雜度計算
-
-
1-6 資料結構
-
1-7 習題
-
-
第二章 陣列(Array)
-
2-1 基本觀念
-
2-2 使用索引存取陣列內容
-
2-3 新資料插入陣列
-
2-3-1 假設當下有足夠的連續記憶體空間
-
2-3-2 假設當下沒有足夠的連續記憶體空間
-
-
2-4 刪除陣列元素
-
2-5 思考陣列的優缺點
-
2-6 與陣列有關的Python程式
-
2-6-1 建立陣列
-
2-6-2 存取陣列內容
-
2-6-3 將資料插入陣列
-
2-6-4 刪除陣列元素
-
2-6-5 搜尋陣列元素
-
2-6-6 更新陣列內容
-
2-6-7 Numpy
-
-
2-7 習題
-
-
第三章 鏈結串列(Linked list)
-
3-1 鏈結串列資料形式與記憶體觀念
-
3-2 鏈結串列的資料讀取
-
3-3 新資料插入鏈結串列
-
3-4 刪除鏈結串列的節點元素
-
3-5 循環鏈結串列(circle linked list)
-
3-6 雙向鏈結串列
-
3-7 陣列與鏈結串列基本操作時間複雜度比較
-
3-8 與鏈結串列有關的Python程式
-
3-8-1 建立鏈結串列
-
3-8-2 建立鏈結串列類別和遍歷此鏈結串列
-
3-8-3 在鏈結串列第一個節點前插入一個新的節點
-
3-8-4 在鏈結串列末端插入新的節點
-
3-8-5 在鏈結串列中間插入新的節點
-
3-8-6 在鏈結串列中移除指定內容的節點
-
3-8-7 建立循環鏈結串列
-
3-8-8 雙向鏈結串列
-
-
3-9 習題
-
-
第四章 佇列(Queue)
-
4-1 資料插入enqueue
-
4-2 資料讀取dequeue
-
4-3 使用串列模擬佇列的操作
-
4-4 與佇列有關的Python模組
-
4-5 習題
-
-
第五章 堆疊(Stack)
-
5-1 資料堆入push
-
5-2 資料取出pop
-
5-3 Python實作堆疊
-
5-3-1 使用串列(list)模擬堆疊操作
-
5-3-2 自行建立Stack類別執行相關操作
-
-
5-4 函數呼叫與堆疊運作
-
5-5 遞迴呼叫與堆疊運作
-
5-6 習題
-
-
第六章 二元樹(Binary Tree)
-
6-1 建立二元樹
-
6-2 刪除二元樹的節點
-
6-3 搜尋二元樹的數據
-
6-4 更進一步認識二元樹
-
6-5 記憶體儲存二元樹的方法
-
6-6 Python實作二元樹
-
6-6-1 使用陣列建立二元樹
-
6-6-2 鏈結串列方式建立二元樹的根節點
-
6-6-3 使用鏈結串列建立二元樹
-
6-6-4 遍歷二元樹使用中序(inorder)列印
-
6-6-5 遍歷二元樹使用前序(preorder)列印
-
6-6-6 遍歷二元樹使用後序(postorder)列印
-
6-6-7 二元樹節點的搜尋
-
6-6-8 二元樹節點的刪除
-
6-6-9 二元樹的應用與工作效率
-
-
6-7 二元樹的缺點
-
6-8 習題
-
-
第七章 堆積樹(Heap Tree)
-
7-1 建立堆積樹
-
7-2 插入數據到堆積樹
-
7-3 取出最小堆積樹的值
-
7-4 最小堆積樹與陣列
-
7-5 Python內建堆積樹模組heapq
-
7-5-1 建立二元堆積樹heapify()
-
7-5-2 堆入元素到堆積heappush()
-
7-5-3 從堆積取出和刪除元素heappop()
-
7-5-4 堆入和取出heappushpop()
-
7-5-5 傳回最大或是最小的n個元素
-
7-5-6 取出堆積的最小值和插入新元素
-
7-5-7 堆積的元素是元組(tuple)
-
7-5-8 二元堆積樹排序的應用
-
-
7-6 Python硬功夫-自己建立堆積樹模組
-
7-6-1 自己建立堆積樹
-
7-6-2 自己建立方法取出堆積樹的最小值
-
7-6-3 插入節點
-
-
7-7 習題
-
-
第八章 雜湊表(Hash Table)
-
8-1 基本觀念
-
8-2 雜湊表轉成陣列
-
8-2-1 雜湊表寫入
-
8-2-2 雜湊碰撞與鏈結法
-
8-2-3 雜湊碰撞與開放定址法
-
-
8-3 搜尋雜湊表
-
8-4 雜湊表的規模與擴充
-
8-5 好的雜湊表與不好的雜湊表
-
8-6 雜湊表效能分析
-
8-7 Python程式應用
-
8-7-1 Python建立雜湊表
-
8-7-2 建立電話號碼簿
-
8-7-3 避免資料重複
-
8-7-4 Domain Name Server(DNS) 解析IP
-
-
8-8 認識雜湊表模組hashlib
-
8-8-1 使用md5()方法計算中文/英文資料的雜湊值
-
8-8-2 計算檔案的雜湊值
-
8-8-3 使用sha1()方法計算雜湊值
-
8-8-4 認識此平台可以使用的雜湊演算法
-
8-8-5 認識跨平台可以使用的雜湊演算法
-
-
8-9 習題
-
-
第九章 排序
-
9-1 排序的觀念與應用
-
9-1-1 基礎觀念
-
9-1-2 一般排序與分治法
-
-
9-2 泡沫排序法(Bubble Sort)
-
9-2-1 圖解泡沫排序演算法
-
9-2-2 Python程式實作
-
-
9-3 雞尾酒排序(Cocktail Sort)
-
9-3-1 圖解雞尾酒排序演算法
-
9-3-2 Python程式實作
-
-
9-4 選擇排序(Selection Sort)
-
9-4-1 圖解選擇排序演算法
-
9-4-2 Python程式實作
-
9-4-3 選擇排序的應用
-
-
9-5 插入排序(Insertion Sort)
-
9-5-1 圖解插入排序演算法
-
9-5-2 插入排序與玩撲克牌
-
9-5-3 Python程式實作
-
-
9-6 堆積樹排序(Heap Sort)
-
9-6-1 圖解堆積樹排序演算法
-
9-6-2 Python程式實作
-
-
9-7 快速排序(Quick Sort)
-
9-7-1 圖解快速排序演算法
-
9-7-2 Python程式實作
-
-
9-8 合併排序(Merge Sort)
-
9-8-1 圖解合併排序演算法
-
9-8-2 Python程式實作
-
-
9-9 習題
-
-
第十章 數據搜尋
-
10-1 順序搜尋法(Sequential Search)
-
10-1-1 圖解順序搜尋演算法
-
10-1-2 Python程式實作
-
-
10-2 二分搜尋法(Binary Search)
-
10-2-1 圖解二分搜尋法
-
10-2-2 Python程式實作
-
-
10-3 搜尋最大值演算法
-
10-4 習題
-
-
第十一章 堆疊、回溯演算法與迷宮
-
11-1 走迷宮與回溯演算法
-
11-2 迷宮設計堆疊扮演的角色
-
11-3 Python程式實作走迷宮
-
11-4 習題
-
-
第十二章 從遞迴看經典演算法
-
12-1 費波納契(Fibonacci) 數列
-
12-2 河內塔演算法
-
12-2-1 了解河內塔問題
-
12-2-2 手動實作河內塔問題
-
12-2-3 Python程式實作河內塔問題
-
12-2-4 圖例解說河內塔完整遞迴流程
-
-
12-3 八皇后演算法
-
12-3-1 了解八皇后的題目
-
12-3-2 回溯(Backtracking)演算法與八皇后
-
12-3-3 遞迴的解法
-
-
12-4 碎形-VLSI設計演算法
-
12-4-1 演算法基本觀念
-
12-4-2 Python程式實作
-
-
12-5 習題
-
-
第十三章 圖形(Graph)理論
-
13-1 圖形(Graph)的基本觀念
-
13-1-1 基本觀念
-
13-1-2 生活實例的觀念擴展
-
13-1-3 加權圖形(Weighted Graph)
-
13-1-4 有向圖形(Directed Graph)
-
13-1-5 有向無環圖(Directed Acyclic Graph)
-
13-1-6 拓樸排序(Topological Sort)
-
-
13-2 廣度優先搜尋演算法觀念解說
-
13-2-1 廣度優先搜尋演算法理論
-
13-2-2 生活實務解說
-
13-2-3 最短路徑
-
-
13-3 Python實作廣度優先搜尋演算法
-
13-3-1 好用的collections模組的deque()
-
13-3-2 廣度優先搜尋演算法實作
-
13-3-3 廣度優先演算法拜訪所有節點
-
13-3-4 走迷宮
-
-
13-4 深度優先搜尋演算法理論與實作
-
13-4-1 深度優先搜尋演算法理論
-
13-4-2 深度優先搜尋演算法實例
-
-
13-5 習題
-
-
第十四章 圖形理論之最短路徑演算法
-
14-1 戴克斯特拉(Dijkstra's)演算法
-
14-1-1 最短路徑與最快路徑問題
-
14-1-2 戴克斯特拉演算法
-
14-1-3 Python程式實作
-
-
14-2 貝爾曼-福特(Bellman-Ford)演算法
-
14-3 A*演算法
-
14-4 習題
-
-
第十五章 貪婪演算法(Greedy Algorithm)
-
15-1 選課分析
-
15-1-1 問題分析
-
15-1-2 演算法分析
-
15-1-3 Python程式實作
-
-
15-2 背包問題-貪婪演算法不是最完美的結果
-
15-2-1 問題分析
-
15-2-2 演算法分析
-
15-2-3 Python實作
-
-
15-3 電台選擇
-
15-3-1 問題分析
-
15-3-2 演算法分析
-
15-3-3 Python實作
-
-
15-4 業務員旅行
-
15-4-1 問題分析
-
15-4-2 演算法分析
-
-
15-5 NP-Complete問題
-
15-6 習題
-
-
第十六章 動態規劃演算法
-
16-1 再談背包問題-動態規劃演算法
-
16-1-1 簡單同時正確的演算法但是耗時
-
16-1-2 動態規劃演算法
-
16-1-3 動態演算法延伸探討
-
16-1-4 存放順序也不影響結果
-
16-1-5 Python程式實作
-
-
16-2 旅遊行程的安排
-
16-2-1 旅遊行程觀念
-
16-2-2 Python程式實作
-
-
16-3 挖金礦問題
-
16-4 最長共用子字串
-
16-4-1 最長共用子字串(Longest Common Substring)
-
16-4-2 最長共用子序列(Longest Common Subsequence)
-
-
16-5 習題
-
-
第十七章 資料加密到資訊安全演算法
-
17-1 資料安全與資料加密
-
17-1-1 認識資料安全的專有名詞
-
17-1-2 加密
-
-
17-2 摩斯密碼(Morse code)
-
17-3 凱薩密碼
-
17-4 再談文件加密技術
-
17-5 全天下只有你可以解的加密程式?你也可能無法解?
-
17-6 雜湊函數與SHA 家族
-
17-6-1 再談雜湊函數
-
17-6-2 MD5(Message-Digest Algorithm)
-
17-6-3 SHA家族
-
-
17-7 金鑰密碼
-
17-7-1 對稱金鑰密碼
-
17-7-2 公開金鑰密碼
-
-
17-8 訊息鑑別碼(Message authentication code)
-
17-9 數位簽章(Digital Signature)
-
17-10 數位憑證(Digital certificate)
-
17-11 習題
-
-
第十八章 人工智慧破冰之旅-KNN和K-means演算法演算法
-
18-1 將畢氏定理應用在性向測試
-
18-1-1 問題核心分析
-
18-1-2 數據運算
-
18-1-3 將畢氏定理應用在三維空間
-
-
18-2 電影分類
-
18-2-1 規劃特徵值
-
18-2-2 將KNN演算法應用在電影分類的精神
-
18-2-3 專案程式實作
-
18-2-4 電影分類結論
-
-
18-3 選舉造勢與銷售烤香腸
-
18-3-1 規劃特徵值表
-
18-3-2 迴歸方法
-
18-3-3 專案程式實作
-
-
18-4 K-means演算法
-
18-4-1 演算法基礎
-
18-4-2 程式實作
-
-
18-5 習題實作題
-
-
第十九章 常見職場面試的演算法
-
19-1 自動販賣機找零錢的問題
-
19-2 基數轉換
-
19-2-1 10進位與與2進位
-
19-2-2 10進位轉2進位
-
19-2-3 2進位轉10進位
-
-
19-3 質數(Prime number)測試
-
19-4 回文(Palindrome)演算法
-
19-5 歐幾里德演算法
-
19-5-1 土地區塊劃分
-
19-5-2 最大公因數(Greatest Common Divisor)
-
19-5-3 輾轉相除法
-
19-5-4 遞迴函數設計處理歐幾里德算法
-
-
19-6 最小公倍數(Least Common Multiple)
-
19-7 雞兔同籠的問題
-
19-8 網頁排名PageRank
-
19-8-1 超連結排名的基本觀念
-
19-8-2 權威性排名
-
19-8-3 隨機漫遊記法
-
-
19-9 習題
-
-
第二十章 精選LeetCode考題演算法
-
20-1 爬樓梯問題
-
20-2 小偷偷物品問題
-
20-3 最少經費粉刷房子
-
20-4 粉刷籬笆的方法
-
20-5 棒球比賽得分總計
-
20-6 判斷2個矩形是否相交
-
20-7 分糖果問題
-
20-8 記錄機器人行走路徑
-
20-9 設計滿足小孩分餅乾的問題
-
20-10 賣檸檬汁找錢的問題
-
- 出版地 : 臺灣
- 語言 : 繁體中文
- DOI : 10.978.6267146/583
評分與評論
請登入後再留言與評分