書名:演算法 圖解原理 x Python實作 x 創意應用 王者歸來
原文書名:
產品代碼:
9786267383964系列編號:
DM2456定價:
780元作者:
洪錦魁頁數:
560頁開數:
17x23x2.74裝訂:
平裝上市日:
20240809出版日:
20240809出版社:
深智數位股份有限公司CIP:
312.32P97市場分類:
電腦資訊產品分類:
書籍免稅聯合分類:
電腦資訊類- ※缺書中
商品簡介
演算法
圖解原理 x Python實作 x 創意應用
王者歸來
(全彩印刷)
本書內容
★★★★★【國內第1本演算法 + 創意實作】★★★★★
★★★★★【彩色圖解演算法】【Python創意程式】★★★★★
★★★★★【約700張彩色圖片+ 296個創意應用】★★★★★
這是一本使用Python從零開始指導讀者的演算法入門書籍,閱讀本書內容,讀者可以學會下列知識的創意與潛在應用:
◎演算法基本觀念
★ 主要內容:時間複雜度、空間複雜度
☆ 創意應用:一個要計算8411億年的程式
◎陣列與鏈結串列
★主要內容:陣列、單向(雙向)鏈結串列、循環鏈結串列
☆創意應用:客戶資料管理、庫存管理系統、瀏覽器歷史記錄管理系統、音樂播放管理、醫療排隊系統
◎佇列(Queue)
★主要內容:插入、讀取、串列模擬佇列
☆創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理
◎堆疊(Stack)
★主要內容:堆入push、取出pop、認識堆別在函數呼叫的角色
☆創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理
◎二元樹(Binary Tree)
★主要內容:建立、讀取、前序(中序與後序)遍歷二元樹
☆創意應用:表達式樹、家譜樹、網頁導航樹、遊戲AI決策樹
◎堆積樹(Heap Tree)
★主要內容:建立、取出、刪除、最小(最大)堆積樹
☆創意應用:線上遊戲得分排行榜、物流中心的貨物調度、醫院緊急情況處理系統、電商平台推薦系統設計、多任務處理最短作業優先調度
◎雜湊表(Hash Table)
★主要內容:雜湊表與陣列、效能分析、模組
☆創意應用:電影評分系統、電子郵件垃圾過濾器、社交媒體標籤系統、網頁瀏覽記錄、簡單的快取系統
◎排序
★主要內容:泡沫、雞尾酒、選擇、插入、堆積樹、快速與合併排序
☆創意應用:社交媒體貼文按讚數排序、任務排序、KTV點播次數排序、影評排序、旅館價位排序
◎數據搜尋
★主要內容:順序、二分搜尋、搜尋最大值
☆創意應用:順序搜尋商品庫存、二分搜尋法查詢書籍、順序搜尋電子郵件黑名單、書籍搜尋使用二分搜尋法
◎回溯演算法
★主要內容:走迷宮、迷宮設計與堆疊
☆創意應用:排列組合、密碼生成、圖的著色、任務分配、走迷宮
◎從遞迴看經典演算法
★主要內容:河內塔、八皇后、碎形、VLSI設計費波納契數列
☆創意應用:費波納契數列、排列組合、密碼、最少著色、數獨
◎圖形(Graph)理論
★主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal
☆創意應用:走迷宮、社交網路中的最短關係鏈、網路爬蟲、航班路徑查找、檢測圖中的環、拓撲排序、島嶼數計算、金融與經濟分析
◎圖形理論之最短路徑演算法
★主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal
☆創意應用:GPS導航實例、金融市場套利檢測、專案管理中的最短時間計算、機器翻譯、機器人路徑規劃、電信網路費用計算、太空探測器的導航
◎貪婪演算法(Greedy Algorithm)
★主要內容:局部最佳解、霍夫曼(Huffman)演算法、認識NP-Complete
☆創意應用:找零錢問題、選課分析、背包裝滿最高價值商品、購買廣告與電台選擇、業務員旅行之最短路徑、工作排程問題
◎動態規劃演算法
★主要內容:思維與步驟、弗洛伊德(Floyd-Warshall)演算法
☆創意應用:找零錢問題、背包問題、旅遊行程的安排、挖金礦問題、最長共用子字串
◎資料加密到資訊安全演算法
★主要內容:資料安全與資料加密、摩斯密碼、凱薩密碼、文件加密技術
☆創意應用:訊息鑑別碼、數位簽章、數位憑證
◎常見職場面試的演算法
★主要內容:基數轉換、質數、回文、歐幾里德演算法、最小公倍數、網頁排名PageRank
☆創意應用:文學創作、製造業同步生產週期、物流管理、網路路由週期性檢查
◎精選LeetCode考題演算法
★主要內容:爬樓梯、強盜搶劫、粉刷房子、粉刷籬笆、棒球比賽得分、判斷矩形是否相交、分糖果、機器人路徑、小孩分餅乾、賣檸檬汁找錢
☆創意應用:財務規劃投資、最佳股票買賣時機、最佳資源分配、遊戲計分系統、迷宮探險
演算法
圖解原理 x Python實作 x 創意應用
王者歸來
(全彩印刷)
本書內容
★★★★★【國內第1本演算法 + 創意實作】★★★★★
★★★★★【彩色圖解演算法】【Python創意程式】★★★★★
★★★★★【約700張彩色圖片+ 296個創意應用】★★★★★
這是一本使用Python從零開始指導讀者的演算法入門書籍,閱讀本書內容,讀者可以學會下列知識的創意與潛在應用:
◎演算法基本觀念
★ 主要內容:時間複雜度、空間複雜度
☆ 創意應用:一個要計算8411億年的程式
◎陣列與鏈結串列
★主要內容:陣列、單向(雙向)鏈結串列、循環鏈結串列
☆創意應用:客戶資料管理、庫存管理系統、瀏覽器歷史記錄管理系統、音樂播放管理、醫療排隊系統
◎佇列(Queue)
★主要內容:插入、讀取、串列模擬佇列
☆創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理
◎堆疊(Stack)
★主要內容:堆入push、取出pop、認識堆別在函數呼叫的角色
☆創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理
◎二元樹(Binary Tree)
★主要內容:建立、讀取、前序(中序與後序)遍歷二元樹
☆創意應用:表達式樹、家譜樹、網頁導航樹、遊戲AI決策樹
◎堆積樹(Heap Tree)
★主要內容:建立、取出、刪除、最小(最大)堆積樹
☆創意應用:線上遊戲得分排行榜、物流中心的貨物調度、醫院緊急情況處理系統、電商平台推薦系統設計、多任務處理最短作業優先調度
◎雜湊表(Hash Table)
★主要內容:雜湊表與陣列、效能分析、模組
☆創意應用:電影評分系統、電子郵件垃圾過濾器、社交媒體標籤系統、網頁瀏覽記錄、簡單的快取系統
◎排序
★主要內容:泡沫、雞尾酒、選擇、插入、堆積樹、快速與合併排序
☆創意應用:社交媒體貼文按讚數排序、任務排序、KTV點播次數排序、影評排序、旅館價位排序
◎數據搜尋
★主要內容:順序、二分搜尋、搜尋最大值
☆創意應用:順序搜尋商品庫存、二分搜尋法查詢書籍、順序搜尋電子郵件黑名單、書籍搜尋使用二分搜尋法
◎回溯演算法
★主要內容:走迷宮、迷宮設計與堆疊
☆創意應用:排列組合、密碼生成、圖的著色、任務分配、走迷宮
◎從遞迴看經典演算法
★主要內容:河內塔、八皇后、碎形、VLSI設計費波納契數列
☆創意應用:費波納契數列、排列組合、密碼、最少著色、數獨
◎圖形(Graph)理論
★主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal
☆創意應用:走迷宮、社交網路中的最短關係鏈、網路爬蟲、航班路徑查找、檢測圖中的環、拓撲排序、島嶼數計算、金融與經濟分析
◎圖形理論之最短路徑演算法
★主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal
☆創意應用:GPS導航實例、金融市場套利檢測、專案管理中的最短時間計算、機器翻譯、機器人路徑規劃、電信網路費用計算、太空探測器的導航
◎貪婪演算法(Greedy Algorithm)
★主要內容:局部最佳解、霍夫曼(Huffman)演算法、認識NP-Complete
☆創意應用:找零錢問題、選課分析、背包裝滿最高價值商品、購買廣告與電台選擇、業務員旅行之最短路徑、工作排程問題
◎動態規劃演算法
★主要內容:思維與步驟、弗洛伊德(Floyd-Warshall)演算法
☆創意應用:找零錢問題、背包問題、旅遊行程的安排、挖金礦問題、最長共用子字串
◎資料加密到資訊安全演算法
★主要內容:資料安全與資料加密、摩斯密碼、凱薩密碼、文件加密技術
☆創意應用:訊息鑑別碼、數位簽章、數位憑證
◎常見職場面試的演算法
★主要內容:基數轉換、質數、回文、歐幾里德演算法、最小公倍數、網頁排名PageRank
☆創意應用:文學創作、製造業同步生產週期、物流管理、網路路由週期性檢查
◎精選LeetCode考題演算法
★主要內容:爬樓梯、強盜搶劫、粉刷房子、粉刷籬笆、棒球比賽得分、判斷矩形是否相交、分糖果、機器人路徑、小孩分餅乾、賣檸檬汁找錢
☆創意應用:財務規劃投資、最佳股票買賣時機、最佳資源分配、遊戲計分系統、迷宮探險
作者簡介
洪錦魁
2023 年博客來10 大暢銷華文作家,多年來唯一獲選的電腦書籍作者,也是一位跨越電腦作業系統與科技時代的電腦專家,著作等身的作家。
DOS 時代他的代表作品是「IBM PC 組合語言、C、C++、Pascal、資料結構」。
Windows 時代他的代表作品是「Windows Programming 使用 C、Visual Basic」。
Internet 時代他的代表作品是「網頁設計使用 HTML」。
大數據時代他的代表作品是「R 語言邁向 Big Data 之路」。
AI 時代他的代表作品是「機器學習 Python 實作」。
通用 AI 時代,國內第 1 本「ChatGPT、Copilot」的作者。
作品曾被翻譯為簡體中文、馬來西亞文,英文,近年來作品則是在北京清華大學和台灣深智同步發行:
1:C、Java、Python、C#、R 最強入門邁向頂尖高手之路王者歸來
2:Python 網路爬蟲/ 影像創意/ 演算法邏輯思維/ 資料視覺化 - 王者歸來
3:網頁設計HTML+CSS+JavaScript+jQuery+Bootstrap+Google Maps 王者歸來
4:機器學習基礎數學、微積分、真實數據、專題Python 實作王者歸來
5:Excel 完整學習、Excel 函數庫、Excel VBA 應用王者歸來
6:Python 操作Excel 最強入門邁向辦公室自動化之路王者歸來
7:Power BI 最強入門 – AI 視覺化+ 智慧決策+ 雲端分享王者歸來
8:國內第1 本無料AI、AI 職場、AI 行銷的作者
他的多本著作皆曾登上天瓏、博客來、Momo 電腦書類,不同時期暢銷排行榜第1 名,他的著作特色是,所有程式語法或是功能解說會依特性分類,同時以實用的程式範例做說明,不賣弄學問,讓整本書淺顯易懂,讀者可以由他的著作事半功倍輕鬆掌握相關知識。
書籍目錄
第1 章 演算法基本觀念
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 習題
第2 章 陣列(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-7 陣列的創意應用
2-8 習題
第3 章 鏈結串列(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 鏈結串列的創意應用
3-10 習題
第4 章 佇列(Queue)
創意程式:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL 管理
4-1 資料插入enqueue
4-2 資料讀取dequeue
4-3 使用串列模擬佇列的操作
4-4 與佇列有關的Python 模組
4-5 佇列的創意應用
4-6 習題
第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 堆疊的創意應用
5-7 習題
第6 章 二元樹(Binary Tree)
創意程式:表達式樹、家譜樹、網頁導航樹、遊戲AI 決策樹
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 二元樹的創意應用
6-9 習題
第7 章 堆積樹(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 堆積樹的創意應用
7-9 習題
第8 章 雜湊表(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 雜湊表的創意應用
8-10 習題
第9 章 排序
創意程式:社交媒體貼文按讚數排序、任務排序、KTV 點播次數排序、影評排序、旅館價位排序
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 排序的創意應用
9-10 習題
第10 章 數據搜尋
創意程式:順序搜尋商品庫存、二分搜尋法查詢書籍、順序搜尋電子郵件黑名單、書籍搜尋使用二分搜尋法
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 數據搜尋的創意應用
10-5 習題
第11 章 回溯演算法
創意程式:排列組合、密碼生成、圖的著色、任務分配、走迷宮
11-1 走迷宮與回溯演算法
11-2 迷宮設計堆疊扮演的角色
11-3 Python 程式實作走迷宮
11-4 回溯演算法的創意應用
11-4-1 排列組合
11-4-2 生成所有可能的密碼組合
11-4-3 圖的著色問題
11-4-4 任務分配問題
11-5 習題
第12 章 從遞迴看經典演算法
創意程式:費波納契(Fibonacci) 數列、河內塔、八皇后、碎形 – VLSI 設計、數獨
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 數獨問題
12-5-1 數獨的歷史
12-5-2 數獨問題的細節
12-5-3 數獨演算法
12-5-4 Python 實作
12-5-5 數獨的解答唯一性
12-6 習題
第13 章 圖形(Graph) 理論
創意程式:社交網路中的最短關係鏈、網路爬蟲、航班路徑查找、檢測圖中的環、拓撲排序、島嶼數計算、金融與經濟分析
13-1 圖形(Graph) 的基本觀念
13-1-1 基本觀念
13-1-2 生活實例的觀念擴展
13-1-3 加權圖形(Weighted Graph)
13-1-4 有向圖形(Directed Graph)
13-1-5 環(Cycle) 與有向無環圖(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-4-3 航班路徑查詢
13-5 深度優先搜尋演算法理論與實作
13-5-1 深度優先搜尋演算法理論
13-5-2 深度優先搜尋演算法實例
13-6 深度優先搜尋的創意實例
13-6-1 檢測圖中的環
13-6-2 拓撲排序
13-6-3 島嶼數計算
13-7 最小生成樹演算法
13-7-1 Prim 演算法
13-7-2 Kruskal 演算法
13-7-3 最小生成樹的創意應用
13-7-4 金融與經濟學的創意應用
13-8 習題
第14 章 圖形理論之最短路徑演算法
創意程式:GPS 導航實例、金融市場套利檢測、專案管理中的最短時間計算、機器翻譯、機器人路徑規劃、電信網路費用計算、太空探測器的導航
14-1 戴克斯特拉(Dijkstra's) 演算法
14-1-1 最短路徑與最快路徑問題
14-1-2 戴克斯特拉演算法
14-1-3 Python 程式實作
14-1-4 戴克斯特拉演算法的創意應用
14-1-5 GPS 導航實例
14-2 貝爾曼- 福特(Bellman-Ford) 演算法
14-2-1 貝爾曼- 福特演算法原理與實作
14-2-2 貝爾曼- 福特演算法的創意應用
14-2-3 金融市場套利檢測
14-2-4 專案管理中的最短時間計算
14-3 A* 演算法
14-3-1 A* 演算法觀念
14-3-2 A* 演算法步驟與實作
14-3-3 A* 演算法的創意應用
14-3-4 機器翻譯
14-4 習題
第15 章 貪婪演算法(Greedy Algorithm)
創意程式:找零錢問題、選課分析、背包裝滿最高價值商品、購買廣告與電台選擇、業務員旅行之最短路徑、霍夫曼(Huffman) 演算法、工作排程問題
15-1 認識貪婪演算法
15-1-1 認識貪婪演算法
15-1-2 貪婪演算法的創意應用
15-1-3 找零問題
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-4-3 Python 實作
15-5 業務員旅行之最短路徑
15-5-1 問題分析
15-5-2 演算法分析
15-6 霍夫曼(Huffman) 演算法
15-6-1 一般編碼說起
15-6-2 霍夫曼演算法精神
15-6-3 程式設計霍夫曼演算法步驟
15-7 NP-Complete 問題
15-8 習題
第16 章 動態規劃演算法
創意程式:找零錢問題、背包問題、旅遊行程的安排、挖金礦問題、最長共用子字串、弗洛伊德(Floyd-Warshall) 演算法
16-1 動態規劃的思維與步驟
16-1-1 動態規劃的思維與步驟
16-1-2 從費波納契數列了解動態規劃的步驟
16-1-3 用表格表示與解釋動態規劃演算法
16-1-4 動態規劃的創意應用
16-2 再談背包問題 – 動態規劃演算法
16-2-1 簡單同時正確的演算法但是耗時
16-2-2 動態規劃演算法16-2-3 動態演算法延伸探討
16-2-4 存放順序也不影響結果
16-2-5 Python 程式實作
16-3 旅遊行程的安排
16-3-1 旅遊行程觀念
16-3-2 Python 程式實作
16-4 挖金礦問題
16-5 最長共用子字串
16-5-1 最長共用子字串(Longest Common Substring)
16-5-2 最長共用子序列(Longest Common Subsequence)
16-6 弗洛伊德(Floyd-Warshall) 演算法
16-6-1 弗洛伊德演算法的基本思維
16-6-2 弗洛伊德動態規劃的步驟
16-7 習題
第17 章 資料加密到資訊安全演算法
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 習題
第18 章 常見職場面試的演算法
創意程式:文學創作、製造業同步生產週期、物流管理、網路路由週期性檢查
18-1 基數轉換
18-1-1 10 進制與2 進制
18-1-2 10 進制轉2 進制
18-1-3 2 進制轉10 進制
18-2 質數(Prime number) 測試
18-2-1 傳統質數測試
18-2-2 篩法求質數(Sieve of Eratosthenes)
18-3 回文(Palindrome) 演算法
18-4 歐幾里德演算法
18-4-1 土地區塊劃分
18-4-2 輾轉相除法
18-4-3 GCD 演算法的創意應用
18-5 最小公倍數(Least Common Multiple)
18-5-1 數學原理
18-5-2 創意應用
18-6 網頁排名PageRank
18-6-1 超連結排名的基本觀念
18-6-2 權威性排名
18-6-3 隨機漫遊記法
18-7 習題
第19 章 精選LeetCode 考題演算法
創意程式:財務規劃投資、最佳股票買賣時機、最佳資源分配、遊戲計分系統、迷宮探險
19-1 爬樓梯問題
19-2 搶劫物品問題
19-3 最少經費粉刷房子
19-4 粉刷籬笆的方法
19-5 棒球比賽得分總計
19-6 判斷2 個矩形是否相交
19-7 分糖果問題
19-8 記錄機器人行走路徑
19-9 設計滿足小孩分餅乾的問題
19-10 賣檸檬汁找錢的問題
19-11 習題
推薦序/導讀/自序
序
這本書的第1版曾經獲得博客來與天瓏暢銷排行榜第1名,也是國內第1本描述演算法各場景創意應用的書籍。
市面上已經有許多演算法的書籍,這些書籍普遍的缺點如下:
․紙上談兵不切實際,介紹演算法原理,只有很少的片段程式碼。讀者學會哪些書籍所述的演算法原理,最後沒有實作能力。
․書籍不是使用Python實作,與當前最熱門的Python程式脫鉤。
․國內幾乎所有演算法書籍只有說明演算法表面的原理,沒有講解如何將演算法應用在各個創意場景。
撰寫這本演算法書籍,筆者時時記住下列3個原則:
1:用彩色圖片引導讀者認識演算法的原理與邏輯思維,方便讀者輕鬆學習,這本書包含了約700張演算法的邏輯思維與原理圖片,這也是目前演算法書籍有最多彩色邏輯思維圖片的書籍。
2:教導讀者使用Python實作演算法理論,全書共有191個程式實例 + 105個習題實作,這也是目前演算法書籍有最多Python程式實例的書籍。
3:每一種演算法皆有敘述創意應用場景,同時用Python創意程式實作。這也是目前國內唯一演算法書籍,有完整介紹未來創意場景應用實例。
這是一本使用Python從零開始解說演算法,用創意活用演算法的書籍,閱讀本書,讀者可以學會下列知識,同時活用在各種創意場景。
◆演算法基本觀念
․主要內容:時間複雜度、空間複雜度
․創意應用:一個要計算8411億年的程式
◆陣列與鏈結串列
․主要內容:陣列、單向(雙向)鏈結串列、循環鏈結串列
․創意應用:客戶資料管理、庫存管理系統、瀏覽器歷史記錄管理系統、音樂播放管理、醫療排隊系統
◆佇列(Queue)
․主要內容:插入、讀取、串列模擬佇列
․創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理
◆堆疊(Stack)
․主要內容:堆入push、取出pop、認識堆別在函數呼叫的角色
․創意應用:模擬銀行排隊系統、生產者 - 消費者、網路封包處理、網站爬蟲的URL管理
◆二元樹(Binary Tree)
․主要內容:建立、讀取、前序(中序與後序)遍歷二元樹
․創意應用:表達式樹、家譜樹、網頁導航樹、遊戲AI決策樹
◆堆積樹(Heap Tree)
․主要內容:建立、取出、刪除、最小(最大)堆積樹
․創意應用:線上遊戲得分排行榜、物流中心的貨物調度、醫院緊急情況處理系統、電商平台推薦系統設計、多任務處理最短作業優先調度
◆雜湊表(Hash Table)
․主要內容:雜湊表與陣列、效能分析、模組
․創意應用:電影評分系統、電子郵件垃圾過濾器、社交媒體標籤系統、網頁瀏覽記錄、簡單的快取系統
◆排序
․主要內容:泡沫、雞尾酒、選擇、插入、堆積樹、快速與合併排序
․創意應用:社交媒體貼文按讚數排序、任務排序、KTV點播次數排序、影評排序、旅館價位排序
◆數據搜尋
․主要內容:順序、二分搜尋、搜尋最大值
․創意應用:順序搜尋商品庫存、二分搜尋法查詢書籍、順序搜尋電子郵件黑名單、書籍搜尋使用二分搜尋法
◆回溯演算法
․主要內容:走迷宮、迷宮設計與堆疊
․創意應用:排列組合、密碼生成、圖的著色、任務分配、走迷宮
◆從遞迴看經典演算法
․主要內容:河內塔、八皇后、碎形、VLSI設計費波納契數列
․創意應用:費波納契數列、排列組合、密碼、最少著色、數獨
◆圖形(Graph)理論
․主要內容:廣度優先搜尋、深度優先搜尋、拓墣排序、Kahn’s、最小生成樹演算法、Prim、Kruskal
․創意應用:走迷宮、社交網路中的最短關係鏈、網路爬蟲、航班路徑查找、檢測圖中的環、拓撲排序、島嶼數計算、金融與經濟分析
◆圖形理論之最短路徑演算法
․主要內容:Dijkstra’s、Bellman-Ford、A*
․創意應用:GPS導航實例、金融市場套利檢測、專案管理中的最短時間計算、機器翻譯、機器人路徑規劃、電信網路費用計算、太空探測器的導航
◆貪婪演算法(Greedy Algorithm)
․主要內容:局部最佳解、霍夫曼(Huffman)演算法、認識NP-Complete
․創意應用:找零錢問題、選課分析、背包裝滿最高價值商品、購買廣告與電台選擇、業務員旅行之最短路徑、工作排程問題
◆動態規劃演算法
․主要內容:思維與步驟、弗洛伊德(Floyd-Warshall)演算法
․創意應用:找零錢問題、背包問題、旅遊行程的安排、挖金礦問題、最長共用子字串
◆資料加密到資訊安全演算法
․主要內容:資料安全與資料加密、摩斯密碼、凱薩密碼、文件加密技術
․創意應用:訊息鑑別碼、數位簽章、數位憑證
◆常見職場面試的演算法
․主要內容:基數轉換、質數、回文、歐幾里德演算法、最小公倍數、網頁排名PageRank
․創意應用:文學創作、製造業同步生產週期、物流管理、網路路由週期性檢查
◆精選LeetCode考題演算法
․主要內容:爬樓梯、強盜搶劫、粉刷房子、粉刷籬笆、棒球比賽得分、判斷矩形是否相交、分糖果、機器人路徑、小孩分餅乾、賣檸檬汁找錢
․創意應用:財務規劃投資、最佳股票買賣時機、最佳資源分配、遊戲計分系統、迷宮探險
一本書的誕生最重要價值是有系統傳播知識,讀者可以從有系統知識架構,輕鬆、快速學會想要的知識。
寫過許多的電腦書著作,本書沿襲筆者著作的特色,程式實例豐富,相信讀者只要遵循本書內容必定可以在最短時間使用Python精通演算法應用,編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。
洪錦魁2024/7/15
[email protected]
教學資源說明
教學資源有教學投影片和習題解答。
本書習題實作題約105題均有習題解答,如果您是學校老師同時使用本書教學,歡迎與本公司聯繫,本公司將提供習題解答與教學投影片。請老師聯繫時提供任教學校、科系、Email、和手機號碼,以方便深智公司業務單位協助您。
臉書粉絲團
歡迎加入:王者歸來電腦專業圖書系列
歡迎加入:MQTT與AIoT整合應用
歡迎加入:iCoding程式語言讀書會(Python, Java, C, C++, C#, JavaScript, 大數據, 人工智慧等不限),讀者可以不定期獲得本書籍和作者相關訊息。
歡迎加入:穩健精實AI技術手作坊
讀者資源說明
請至本公司網頁deepwisdom.com.tw下載本書程式實例與偶數題習題解答。