本書包含600幅圖片,120個程式實例,66個習題實作。
多年教學經驗筆者深知演算法書籍如果只敘述理論,讀者在實作階段一定會碰上層層困難,因此在撰寫此書時,筆者特別重視理論與實作同步進行,所有程式實例皆是為了讓讀者了解演算法的觀念與內涵而設計。
整本書從時間複雜度、空間複雜度、資料結構開始,使用完整大量圖片講解資料儲存觀念,逐步邁向程式設計師必須懂的演算法知識。除了傳統演算法,本書更擴充到講解資訊安全演算法、人工智慧演算法以及程式設計師面試常見的演算法考題,下列是本書主要內容。
❑時間複雜度
❑空間複雜度
❑8大資料結構完整圖說與程式實例
❑特別使用二元樹和堆疊解圖形解說遞迴中序、前序和後序列印
❑7大排序法完整圖說與程式實例
❑ 二元搜尋與遍歷
❑遞迴與回溯演算法
❑八皇后
❑河內塔
❑碎形與VLSI設計應用
❑圖形理論
❑深度、度寬度優先搜尋
❑Bellman-Ford演算法
❑Dijkstra’s演算法
❑貪婪演算法
❑動態規劃演算法
❑資訊安全演算法
❑摩斯與凱薩密碼
❑金鑰系統觀念,也解說設計金鑰方法或是應用目前市面上成熟的金鑰。
❑訊息鑑別碼(Message authentication code)
❑數位簽章(Digital Signature)
❑數位憑證(Digital certificate)
❑基礎機器學習KNN演算法,不過讀者不用擔心這是分類與迴歸的數學或是統計問題,筆者將拋棄數學公式,用很平實語句敘述搭配程式實例,讓讀者徹底了解此演算法。
❑在機器學習的無監督學習中,K-means演算法常被用來做特徵學習,筆者也將拋棄數學公式,用很平實語句敘述搭配程式實例,讓讀者徹底了解此演算法。
❑職場面試常見的演算法考題
這本著作特色在於不賣弄文字與數學,特別在敘述人工智慧演算法時,拋棄了難懂的數學公式,用最平凡的文字與淺顯易懂的程式實例講解人工智慧的演算法原理與應用,相信讀者購買本書可以用最輕鬆方式學會演算法基礎知識。
作者簡介:
洪錦魁
一位跨越電腦作業系統與科技時代的電腦專家,著作等身的作家。
❑DOS時代他的代表作品是IBM PC組合語言、C、C++、Pascal、資料結構。
❑Windows時代他的代表作品是Windows Programming使用C、Visual Basic。
❑Internet時代他的代表作品是網頁設計使用HTML。
❑大數據時代他的代表作品是R語言邁向Big Data之路。
除了作品被翻譯為簡體中文、馬來西亞文外,2000年作品更被翻譯為Mastering HTML英文版行銷美國,近年來作品則是在北京清華大學和台灣深智同步發行:
1:Java入門邁向高手之路王者歸來
2:Python最強入門邁向頂尖高手之路王者歸來
3:Python最強入門邁向頂尖高手之路王者歸來
4:Python網路爬蟲:大數據擷取、清洗、儲存與分析王者歸來
5:演算法最強彩色圖鑑 + Python程式實作王者歸來
6:HTML5 + CSS3王者歸來
7:R語言邁向Big Data之路
8:Excel完整學習邁向最強職場應用王者歸來
他的近期著作分別登上天瓏、博客來、Momo電腦書類暢銷排行榜第一名,他的書著作最大的特色是,所有程式語法會依特性分類,同時以實用的程式範例做解說,讓整本書淺顯易懂,讀者可以由他的著作事半功倍輕鬆掌握相關知識。
作者序
演算法
最強彩色圖鑑 + Python 程式實作
王者歸來
這這是一本使用Python 從零開始指導讀者的演算法入門書籍,從基礎資料結構與演算法開始,同時解說資訊安全演算法,最後也講解人工智慧入門的KNN 和K-means 演算法。整本書的特色是理論與實務同步解說,使用完整的資料結構圖鑑搭配Python 程式實作做解說,讓讀者可以很輕鬆掌握相關知識。
全書內容包含120 個程式實例,使用約600 張完整圖表或圖例,完整解說8 種資料結構,數十種演算法相關知識,此外也針對國內外著名公司應徵程式設計師的演算法考題做解說,這本書包含下列主要內容。
時間複雜度
空間複雜度
8 大資料結構完整圖說與程式實例
特別使用二元樹和堆疊解圖形解說遞迴中序、前序和後序列印
7 大排序法完整圖說與程式實例
二元搜尋與遍歷
遞迴與回溯演算法
八皇后
河內塔
碎形與 VLSI 設計應用
圖形理論
深度、度寬度優先搜尋
Bellman-Ford 演算法
Dijkstra's 演算法
貪婪演算法
動態規劃演算法
資訊安全演算法
摩斯與凱薩密碼
金鑰系統觀念,也解說設計金鑰方法或是應用目前市面上成熟的金鑰。
訊息鑑別碼 (Message authentication code)
數位簽章 (Digital Signature)
數位憑證 (Digital certificate)
基礎機器學習 KNN 演算法,不過讀者不用擔心這是分類與迴歸的數學或是統計問題,筆者將拋棄數學公式,用很平實語句敘述搭配程式實例,讓讀者徹底了解此演算法。
在機器學習的無監督學習中,K-means 演算法常被用來做特徵學習,筆者也將拋棄數學公式,用很平實語句敘述搭配程式實例,讓讀者徹底了解此演算法。
職場面試常見的演算法考題
一本書的誕生最重要價值是有系統傳播知識,讀者可以從有系統知識架構,快速學會想要的知識。
寫過許多的電腦書著作,本書沿襲筆者著作的特色,程式實例豐富,相信讀者只要遵循本書內容必定可以在最短時間使用Python 精通演算法應用,編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。
演算法
最強彩色圖鑑 + Python 程式實作
王者歸來
這這是一本使用Python 從零開始指導讀者的演算法入門書籍,從基礎資料結構與演算法開始,同時解說資訊安全演算法,最後也講解人工智慧入門的KNN 和K-means 演算法。整本書的特色是理論與實務同步解說,使用完整的資料結構圖鑑搭配Python 程式實作做解說,讓讀者可以很輕鬆掌握相關知識。
全書內容包含120 個程式實例,使用約600 張完整圖表或圖例,完整解說8 種資料結構,數十種演算法相關知識,此外也針對國內外著名公司應徵程式設計師的演算法考題做解說,這本書包含下列主要內...
目錄
第一章 演算法基本觀念
1-1 電腦的演算法
1-2 好的演算法與不好的演算法
1-3 程式執行的時間量測方法 – 時間複雜度
1-4 記憶體的使用 – 空間複雜度
1-5 資料結構
1-6 習題
第二章 陣列(Array)
2-1 基本觀念
2-2 使用索引存取陣列內容
2-3 新資料插入陣列
2-4 刪除陣列元素
2-5 思考陣列的優缺點
2-6 與陣列有關的Python 程式
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-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 實作堆疊2-9 移動及更改圖表大小
5-4 函數呼叫與堆疊運作
5-5 遞迴呼叫與堆疊運作
5-6 習題
第六章 二元樹(Binary Tree)
6-1 建立二元樹
6-2 刪除二元樹的節點
6-3 搜尋二元樹的數據
6-4 更進一步認識二元樹
6-5 記憶體儲存二元樹的方法
6-6 Python 實作二元樹
6-7 習題
第七章 堆積樹(Heap Tree)
7-1 建立堆積樹
7-2 插入數據到堆積樹
7-3 取出最小堆積樹的值
7-4 最小堆積樹與陣列
7-5 Python 內建堆積樹模組heapq
7-6 Python 硬功夫 - 自己建立堆積樹模組
7-7 習題
第八章 雜湊表(Hash Table)
8-1 基本觀念
8-2 雜湊表轉成陣列
8-3 搜尋雜湊表
8-4 雜湊表的規模與擴充
8-5 好的雜湊表與不好的雜湊表
8-6 雜湊表效能分析
8-7 Python 程式應用
8-8 認識雜湊表模組hashlib
8-9 習題
第九章 排序
9-1 排序的觀念與應用
9-2 泡沫排序法(Bubble Sort)
9-3 雞尾酒排序(Cocktail Sort)
9-4 選擇排序(Selection Sort) .
9-5 插入排序(Insertion Sort)
9-6 堆積樹排序(Heap Sort)
9-7 快速排序(Quick Sort)
9-8 合併排序(Merge Sort)
9-9 習題
第十章 數據搜尋
10-1 順序搜尋法(Sequential Search)
10-2 二分搜尋法(Binary Search)
10-3 搜尋最大值演算法
10-4 習題
第十一章 堆疊、回溯演算法與迷宮
11-1 走迷宮與回溯演算法
11-2 迷宮設計堆疊扮演的角色
11-3 Python 程式實作走迷宮
11-4 習題
第十二章 從遞迴看經典演算法
12-1 費波納契(Fibonacci) 數列
12-2 河內塔演算法
12-3 八皇后演算法
12-4 碎形 – VLSI 設計演算法
12-5 習題
第十三章 圖形(Graph) 理論
13-1 圖形(Graph) 的基本觀念
13-2 廣度優先搜尋演算法觀念解說
13-3 Python 實作廣度優先搜尋演算法
13-4 深度優先搜尋演算法理論與實作
13-5 習題
第十四章 圖形理論之最短路徑演算法
14-1 戴克斯特拉(Dijkstra's) 演算法
14-2 貝爾曼- 福特(Bellman-Ford) 演算法
14-3 A* 演算法
14-4 習題
第十五章 貪婪演算法(Greedy Algorithm)
15-1 選課分析
15-2 背包問題 – 貪婪演算法不是最完美的結果
15-3 電台選擇
15-4 業務員旅行
15-5 習題
第十六章 動態規劃演算法
16-1 再談背包問題 – 動態規劃演算法
16-2 旅遊行程的安排
16-3 習題
第十七章 資料加密到資訊安全演算法
17-1 資料安全與資料加密
17-2 摩斯密碼(Morse code)
17-3 凱薩密碼
17-4 再談文件加密技術
17-5 全天下只有你可以解的加密程式? 你也可能無法解?
17-6 雜湊函數與SHA 家族
17-7 金鑰密碼
17-8 訊息鑑別碼(Message authentication code)
17-9 數位簽章(Digital Signature)
17-10 數位憑證(Digital certificate)
17-11 習題
第十八章 人工智慧破冰之旅 - KNN 演算法
18-1 KNN 演算法 - 電影分類
18-2 KNN 演算法 - 選舉造勢與銷售烤香腸
18-3 K-means 演算法
18-4 習題
第十九章 常見職場面試的演算法
19-1 質數(Prime number) 測試
19-2 回文(Palindrome) 演算法
19-3 歐幾里德演算法
19-4 最小公倍數(Least Common Multiple)
19-5 雞兔同籠的問題
19-6 挖金礦問題
19-7 習題
第一章 演算法基本觀念
1-1 電腦的演算法
1-2 好的演算法與不好的演算法
1-3 程式執行的時間量測方法 – 時間複雜度
1-4 記憶體的使用 – 空間複雜度
1-5 資料結構
1-6 習題
第二章 陣列(Array)
2-1 基本觀念
2-2 使用索引存取陣列內容
2-3 新資料插入陣列
2-4 刪除陣列元素
2-5 思考陣列的優缺點
2-6 與陣列有關的Python 程式
2-7 習題
第三章 鏈結串列(Linked list)
3-1 鏈結串列資料形式與記憶體觀念
3-2 鏈結串列的資料讀取
3-3 新資料插入鏈結串列
3-4 刪除鏈結串列的節點元素
3-5 循環鏈結串列(circl...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。