這是一本使用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考題演算法
★主要內容:爬樓梯、強盜搶劫、粉刷房子、粉刷籬笆、棒球比賽得分、判斷矩形是否相交、分糖果、機器人路徑、小孩分餅乾、賣檸檬汁找錢
☆創意應用:財務規劃投資、最佳股票買賣時機、最佳資源分配、遊戲計分系統、迷宮探險