0人評分過此書

演算法:圖解邏輯思維 + Python程式實作.王者歸來

出版日期
2022
閱讀格式
PDF
書籍分類
學科分類
ISBN
9786267146583

計次服務

借閱規則
借閱天數 7
選擇分享方式

推薦本館採購書籍

您可以將喜歡的電子書推薦給圖書館,圖書館會參考讀者意見進行採購

讀者資料
圖書館 和信治癌中心醫院
* 姓名
* 身分
系所
* E-mail
※ 我們會寄送一份副本至您填寫的Email中
電話
※ 電話格式為 區碼+電話號碼(ex. 0229235151)/ 手機格式為 0900111111
* 請輸入驗證碼
★★★★★【650張圖例】+【圖解演算法原理和邏輯思維】★★★★★
★★★★★【20個主題】+【149個Python程式實例】★★★★★
★★★★★【邏輯思維】+【Python實作】=【演算法的精髓】★★★★★

本書的第一版曾經獲得博客來與天瓏暢銷排行榜第1名,撰寫這本書時採用下列原則。
1:彩色圖片引導讀者認識演算法的邏輯思維。
2:Python程式實作演算法原理。
3:章節習題引導讀者複習與自我練習。
當讀者遵循這步驟學習時,相信一定可以完整學習演算法的相關知識,本書的主體內容如下:
☆ 20個主題
★ 認識時間複雜度和空間複雜度
☆ 7大資料結構完整圖說與程式實例
★ 7大排序法完整圖說與程式實例
☆ 遞迴與回溯演算法
★ 電腦領域的經典演算法八皇后和河內塔
☆ 碎形與VLSI設計應用
★ 圖形理論
☆ 深度、寬度優先搜尋
★ Bellman-Ford演算法
☆ Dijkstra’s演算法
★ 貪婪演算法
☆ 動態規劃演算法
★ 資訊安全演算法
☆ 摩斯與凱薩密碼
★ 金鑰系統觀念,解說設計金鑰方法或是應用目前市面上成熟的金鑰
☆ 訊息鑑別碼(Message authentication code)
★ 數位簽章(Digital Signature)
☆ 數位憑證(Digital certificate)
★ 基礎機器學習KNN演算法
☆ K-means演算法
★ 網頁排名演算法
☆ 常見的演算法考題與Leetcode考題
  • 第一章 演算法基本觀念
    • 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 習題
  • 第二章 陣列(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-6-7 Numpy
    • 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-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 習題
  • 第四章 佇列(Queue)
    • 4-1 資料插入enqueue
    • 4-2 資料讀取dequeue
    • 4-3 使用串列模擬佇列的操作
    • 4-4 與佇列有關的Python模組
    • 4-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 習題
  • 第六章 二元樹(Binary Tree)
    • 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 習題
  • 第七章 堆積樹(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 習題
  • 第八章 雜湊表(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 習題
  • 第九章 排序
    • 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 習題
  • 第十章 數據搜尋
    • 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 習題
  • 第十一章 堆疊、回溯演算法與迷宮
    • 11-1 走迷宮與回溯演算法
    • 11-2 迷宮設計堆疊扮演的角色
    • 11-3 Python程式實作走迷宮
    • 11-4 習題
  • 第十二章 從遞迴看經典演算法
    • 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 習題
  • 第十三章 圖形(Graph)理論
    • 13-1 圖形(Graph)的基本觀念
      • 13-1-1 基本觀念
      • 13-1-2 生活實例的觀念擴展
      • 13-1-3 加權圖形(Weighted Graph)
      • 13-1-4 有向圖形(Directed Graph)
      • 13-1-5 有向無環圖(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-5 習題
  • 第十四章 圖形理論之最短路徑演算法
    • 14-1 戴克斯特拉(Dijkstra's)演算法
      • 14-1-1 最短路徑與最快路徑問題
      • 14-1-2 戴克斯特拉演算法
      • 14-1-3 Python程式實作
    • 14-2 貝爾曼-福特(Bellman-Ford)演算法
    • 14-3 A*演算法
    • 14-4 習題
  • 第十五章 貪婪演算法(Greedy Algorithm)
    • 15-1 選課分析
      • 15-1-1 問題分析
      • 15-1-2 演算法分析
      • 15-1-3 Python程式實作
    • 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-5 NP-Complete問題
    • 15-6 習題
  • 第十六章 動態規劃演算法
    • 16-1 再談背包問題-動態規劃演算法
      • 16-1-1 簡單同時正確的演算法但是耗時
      • 16-1-2 動態規劃演算法
      • 16-1-3 動態演算法延伸探討
      • 16-1-4 存放順序也不影響結果
      • 16-1-5 Python程式實作
    • 16-2 旅遊行程的安排
      • 16-2-1 旅遊行程觀念
      • 16-2-2 Python程式實作
    • 16-3 挖金礦問題
    • 16-4 最長共用子字串
      • 16-4-1 最長共用子字串(Longest Common Substring)
      • 16-4-2 最長共用子序列(Longest Common Subsequence)
    • 16-5 習題
  • 第十七章 資料加密到資訊安全演算法
    • 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 習題
  • 第十八章 人工智慧破冰之旅-KNN和K-means演算法演算法
    • 18-1 將畢氏定理應用在性向測試
      • 18-1-1 問題核心分析
      • 18-1-2 數據運算
      • 18-1-3 將畢氏定理應用在三維空間
    • 18-2 電影分類
      • 18-2-1 規劃特徵值
      • 18-2-2 將KNN演算法應用在電影分類的精神
      • 18-2-3 專案程式實作
      • 18-2-4 電影分類結論
    • 18-3 選舉造勢與銷售烤香腸
      • 18-3-1 規劃特徵值表
      • 18-3-2 迴歸方法
      • 18-3-3 專案程式實作
    • 18-4 K-means演算法
      • 18-4-1 演算法基礎
      • 18-4-2 程式實作
    • 18-5 習題實作題
  • 第十九章 常見職場面試的演算法
    • 19-1 自動販賣機找零錢的問題
    • 19-2 基數轉換
      • 19-2-1 10進位與與2進位
      • 19-2-2 10進位轉2進位
      • 19-2-3 2進位轉10進位
    • 19-3 質數(Prime number)測試
    • 19-4 回文(Palindrome)演算法
    • 19-5 歐幾里德演算法
      • 19-5-1 土地區塊劃分
      • 19-5-2 最大公因數(Greatest Common Divisor)
      • 19-5-3 輾轉相除法
      • 19-5-4 遞迴函數設計處理歐幾里德算法
    • 19-6 最小公倍數(Least Common Multiple)
    • 19-7 雞兔同籠的問題
    • 19-8 網頁排名PageRank
      • 19-8-1 超連結排名的基本觀念
      • 19-8-2 權威性排名
      • 19-8-3 隨機漫遊記法
    • 19-9 習題
  • 第二十章 精選LeetCode考題演算法
    • 20-1 爬樓梯問題
    • 20-2 小偷偷物品問題
    • 20-3 最少經費粉刷房子
    • 20-4 粉刷籬笆的方法
    • 20-5 棒球比賽得分總計
    • 20-6 判斷2個矩形是否相交
    • 20-7 分糖果問題
    • 20-8 記錄機器人行走路徑
    • 20-9 設計滿足小孩分餅乾的問題
    • 20-10 賣檸檬汁找錢的問題

評分與評論

請登入後再留言與評分
幫助
您好,請問需要甚麼幫助呢?
使用指南

客服專線:0800-000-747

服務時間:週一至週五 AM 09:00~PM 06:00

loading