序
這本書的第一版曾經獲得博客來與天瓏暢銷排行榜第1 名。
市面上已經有許多演算法的書籍,這些書籍普遍的缺點如下:
紙上談兵不切實際,只介紹演算法原理,只有很少的片段程式碼。讀者學會哪些書籍所述的演算法原理,最後依舊沒有實作能力,其實演算法的原理不困難,如何將原理用程式實作才是演算法的精髓。
書籍不是使用 Python 實作,與當前最熱門的 Python 程式脫鉤,未來無法融入企業電腦環境。
撰寫這本演算法書籍,筆者時時記住下列2 個原則:
1: 用彩色圖片引導讀者認識演算法的邏輯思維,方便讀者輕鬆學習,這本書包含了約650 張演算法的邏輯思維圖片,這也是目前演算法書籍有最多彩色邏輯思維圖片的書籍。
2: 教導讀者使用Python 實作演算法理論,全書共有149 個程式實例 + 71 個習題實作,這也是目前演算法書籍有最多Python 程式實例的書籍。
這本書是筆者所著演算法書籍的第3 版,相較前一版,主要增加下列內容:
獨家彩色圖解河內塔移動過程的步驟與原理
自動販賣機
基數轉換
重新詮釋歐幾里德演算法
網頁排名 Page Rank 演算法
增加 LeetCode 考題
棒球比賽得分總計
判斷 2 個矩形是否相交
分糖果問題
記錄機器人行走路徑
設計滿足小孩分餅乾的問題
賣檸檬汁找錢的問題
小細節修訂約 100 處
這是一本使用Python 從零開始指導讀者的演算法入門書籍,從基礎資料結構與演算法開始,同時解說資訊安全演算法,網頁排名演算法,人工智慧入門的KNN 和K-means 演算法,最後則精選著名的LeetCode 考題演算法。整本書的特色是彩色圖片引導演算法理論的邏輯思維與Python 實作同步解說,讓讀者可以很輕鬆掌握相關知識。
全書內容包含149 個程式實例,使用約650 張完整圖表或圖例,完整解說7 種資料結構,數十種演算法相關知識,這本書包含下列主要內容。
時間複雜度
空間複雜度
7 大資料結構完整圖說與程式實例
特別使用二元樹和堆疊解圖形解說遞迴中序、前序和後序列印
7 大排序法完整圖說與程式實例
二分搜尋與遍歷
分治法 (Divide and Conquer)
遞迴與回溯演算法
八皇后與河內塔
碎形與 VLSI 設計應用
圖形理論
深度、寬度優先搜尋
Bellman-Ford 演算法
Dijkstra's 演算法
貪婪演算法
動態規劃演算法
資訊安全演算法
摩斯與凱薩密碼
金鑰系統觀念,也解說設計金鑰方法或是應用目前市面上成熟的金鑰。
訊息鑑別碼 (Message authentication code)
數位簽章 (Digital Signature)
數位憑證 (Digital certificate)
基礎機器學習 KNN 演算法,不過讀者不用擔心這是分類與迴歸的數學或是統計問題,筆者將拋棄數學公式,用很平實語句敘述搭配程式實例,讓讀者徹底了解此演算法。
在機器學習的無監督學習中,K-means 演算法常被用來做特徵學習,筆者也將拋棄數學公式,用很平實語句敘述搭配程式實例,讓讀者徹底了解此演算法。
網頁排名演算法
常見的演算法考題與 Leetcode 考題
一本書的誕生最重要價值是有系統傳播知識,讀者可以從有系統知識架構,輕鬆、快速學會想要的知識。
寫過許多的電腦書著作,本書沿襲筆者著作的特色,程式實例豐富,相信讀者只要遵循本書內容必定可以在最短時間使用Python 精通演算法應用,編著本書雖力求完美,但是學經歷不足,謬誤難免,尚祈讀者不吝指正。
洪錦魁2022/10/10
jiinkwei@me.com