序
這本書的第一版曾經獲得博客來與天瓏暢銷排行榜第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