幫助中心 | 我的帳號 | 關於我們

Hello演算法(動畫圖解一鍵運行的數據結構與演算法教程)/圖靈原創

  • 作者:靳宇棟|責編:王軍花
  • 出版社:人民郵電
  • ISBN:9787115637505
  • 出版日期:2024/02/01
  • 裝幀:平裝
  • 頁數:380
人民幣:RMB 129.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是備受廣大讀者推崇的數據結構與演算法入門教程,已在GitHub獲得超60k的Star,並多次登頂GitHub Trending。書中系統介紹了數據結構與演算法基礎、複雜度分析、數組與鏈表、棧與隊列、哈希表、樹、堆、圖、搜索、排序、分治、回溯、動態規劃和貪心演算法等核心知識,通過清晰易懂的解釋和豐富的代碼示例,以及生動形象的全彩插圖和在線動畫圖解,揭示演算法工作原理和數據結構底層實現,教授讀者如何選擇和設計演算法來解決不同類型的問題,切實提升編程技能,構建完整的數據結構與演算法知識體系。

作者介紹
靳宇棟|責編:王軍花
    靳宇棟(@krahets)     前華為高級演算法工程師,上海交通大學碩士,西安交通大學本科,專註于3D重建與渲染、3D生成演算法的研究。曾獲VEX機器人世界錦標賽冠軍、全球人工智慧創新大賽一等獎。喜歡在開源社區分享知識,作品的GitHub Star超60,000,訂閱人數超460,000.

目錄

前言
第1章  初識演算法
  1.1  演算法無處不在
  1.2  演算法是什麼
    1.2.1  演算法定義
    1.2.2  數據結構定義
    1.2.3  數據結構與演算法的關係
  1.3  小結
第2章  複雜度分析
  2.1  演算法效率評估
    2.1.1  實際測試
    2.1.2  理論估算
  2.2  迭代與遞歸
    2.2.1  迭代
    2.2.2  遞歸
    2.2.3  兩者對比
  2.3  時間複雜度
    2.3.1  統計時間增長趨勢
    2.3.2  函數漸近上界
    2.3.3  推算方法
    2.3.4  常見類型
    2.3.5  最差、最佳、平均時間複雜度
  2.4  空間複雜度
    2.4.1  演算法相關空間
    2.4.2  推算方法
    2.4.3  常見類型
    2.4.4  權衡時間與空間
  2.5  小結
第3章  數據結構
  3.1  數據結構分類
    3.1.1  邏輯結構:線性與非線性
    3.1.2  物理結構:連續與分散
  3.2  基本數據類型
  3.3  數字編碼
    3.3.1  原碼、反碼和補碼
    3.3.2  浮點數編碼
  3.4  字元編碼
    3.4.1  ASCII字符集
    3.4.2  GBK字符集
    3.4.3  Unicode字符集
    3.4.4  UTF-8編碼
    3.4.5  編程語言的字元編碼
  3.5  小結
第4章  數組與鏈表
  4.1  數組
    4.1.1  數組常用操作
    4.1.2  數組的優點與局限性
    4.1.3  數組典型應用
  4.2  鏈表

    4.2.1  鏈表常用操作
    4.2.2  數組與鏈表對比
    4.2.3  常見鏈表類型
    4.2.4  鏈表典型應用
  4.3  列表
    4.3.1  列表常用操作
    4.3.2  列表實現
  4.4  內存與緩存
    4.4.1  電腦存儲設備
    4.4.2  數據結構的內存效率
    4.4.3  數據結構的緩存效率
  4.5  小結
第5章  棧與隊列
  5.1  棧
    5.1.1  棧的常用操作
    5.1.2  棧的實現
    5.1.3  兩種實現對比
    5.1.4  棧的典型應用
  5.2  隊列
    5.2.1  隊列常用操作
    5.2.2  隊列實現
    5.2.3  隊列典型應用
  5.3  雙向隊列
    5.3.1  雙向隊列常用操作
    5.3.2  雙向隊列實現
    5.3.3  雙向隊列應用
  5.4  小結
第6章  哈希表
  6.1  哈希表
    6.1.1  哈希表常用操作
    6.1.2  哈希表簡單實現
    6.1.3  哈希衝突與擴容
  6.2  哈希衝突
    6.2.1  鏈式地址
    6.2.2  開放定址
    6.2.3  編程語言的選擇
  6.3  哈希演算法
    6.3.1  哈希演算法的目標
    6.3.2  哈希演算法的設計
    6.3.3  常見哈希演算法
    6.3.4  數據結構的哈希值
  6.4  小結
第7章  樹
  7.1  二叉樹
    7.1.1  二叉樹常見術語
    7.1.2  二叉樹基本操作
    7.1.3  常見二叉樹類型
    7.1.4  二叉樹的退化
  7.2  二叉樹遍歷
    7.2.1  層序遍歷

    7.2.2  前序、中序、後序遍歷
  7.3  二叉樹數組表示
    7.3.1  表示完美二叉樹
    7.3.2  表示任意二叉樹
    7.3.3  優點與局限性
  7.4  二叉搜索樹
    7.4.1  二叉搜索樹的操作
    7.4.2  二叉搜索樹的效率
    7.4.3  二叉搜索樹常見應用
  7.5  AVL樹
    7.5.1  AVL樹常見術語
    7.5.2  AVL樹旋轉
    7.5.3  AVL樹常用操作
    7.5.4  AVL樹典型應用
  7.6  小結
第8章  堆
  8.1  堆
    8.1.1  堆的常用操作
    8.1.2  堆的實現
    8.1.3  堆的常見應用
  8.2  建堆操作
    8.2.1  借助入堆操作實現
    8.2.2  通過遍歷堆化實現
    8.2.3  複雜度分析
  8.3  Top-k問題
    8.3.1  方法一:遍歷選擇
    8.3.2  方法二:排序
    8.3.3  方法三:堆
  8.4  小結
第9章  圖
  9.1  圖
    9.1.1  圖的常見類型與術語
    9.1.2  圖的表示
    9.1.3  圖的常見應用
  9.2  圖的基礎操作
    9.2.1  基於鄰接矩陣的實現
    9.2.2  基於鄰接表的實現
    9.2.3  效率對比
  9.3  圖的遍歷
    9.3.1  廣度優先遍歷
    9.3.2  深度優先遍歷
  9.4  小結
第10章  搜索
  10.1  二分查找
    10.1.1  區間表示方法
    10.1.2  優點與局限性
  10.2  二分查找插入點
    10.2.1  無重複元素的情況
    10.2.2  存在重複元素的情況
  10.3  二分查找邊界

    10.3.1  查找左邊界
    10.3.2  查找右邊界
  10.4  哈希優化策略
    10.4.1  線性查找:以時間換空間
    10.4.2  哈希查找:以空間換時間
  10.5  重識搜索演算法
    10.5.1  暴力搜索
    10.5.2  自適應搜索
    10.5.3  搜索方法選取
  10.6  小結
第11章  排序
  11.1  排序演算法
    11.1.1  評價維度
    11.1.2  理想排序演算法
  11.2  選擇排序
  11.3  冒泡排序
    11.3.1  演算法流程
    11.3.2  效率優化
    11.3.3  演算法特性
  11.4  插入排序
    11.4.1  演算法流程
    11.4.2  演算法特性
    11.4.3  插入排序的優勢
  11.5  快速排序
    11.5.1  演算法流程
    11.5.2  演算法特性
    11.5.3  快速排序為什麼快
    11.5.4  基準數優化
    11.5.5  尾遞歸優化
  11.6  歸併排序
    11.6.1  演算法流程
    11.6.2  演算法特性
    11.6.3  鏈表排序
  11.7  堆排序
    11.7.1  演算法流程
    11.7.2  演算法特性
  11.8  桶排序
    11.8.1  演算法流程
    11.8.2  演算法特性
    11.8.3  如何實現平均分配
  11.9  計數排序
    11.9.1  簡單實現
    11.9.2  完整實現
    11.9.3  演算法特性
    11.9.4  局限性
  11.10  基數排序
    11.10.1  演算法流程
    11.10.2  演算法特性
  11.11  小結
第12章  分治

  12.1  分治演算法
    12.1.1  如何判斷分治問題
    12.1.2  通過分治提升效率
    12.1.3  分治常見應用
  12.2  分治搜索策略
  12.3  構建二叉樹問題
  12.4  漢諾塔問題
  12.5  小結
第13章  回溯
  13.1  回溯演算法
    13.1.1  嘗試與回退
    13.1.2  剪枝
    13.1.3  框架代碼
    13.1.4  常用術語
    13.1.5  優點與局限性
    13.1.6  回溯典型例題
  13.2  全排列問題
    13.2.1  無相等元素的情況
    13.2.2  考慮相等元素的情況
  13.3  子集和問題
    13.3.1  無重複元素的情況
    13.3.2  考慮重複元素的情況
  13.4  n皇后問題
  13.5  小結
第14章  動態規劃
  14.1  初探動態規劃
    14.1.1  方法一:暴力搜索
    14.1.2  方法二:記憶化搜索
    14.1.3  方法三:動態規劃
    14.1.4  空間優化
  14.2  動態規劃問題特性
    14.2.1  最優子結構
    14.2.2  無後效性
  14.3  動態規劃解題思路
    14.3.1  問題判斷
    14.3.2  問題求解步驟
  14.40  -1背包問題
  14.5  完全背包問題
    14.5.1  完全背包問題
    14.5.2  零錢兌換問題I
    14.5.3  零錢兌換問題II
  14.6  編輯距離問題
  14.7  小結
第15章  貪心
  15.1  貪心演算法
    15.1.1  貪心演算法的優點與局限性
    15.1.2  貪心演算法特性
    15.1.3  貪心演算法解題步驟
    15.1.4  貪心演算法典型例題
  15.2  分數背包問題

  15.3  最大容量問題
  15.4  最大切分乘積問題
  15.5  小結
附錄A術語表

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032