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

數據結構與演算法之美

  • 作者:王爭|責編:張濤
  • 出版社:人民郵電
  • ISBN:9787115562050
  • 出版日期:2021/06/01
  • 裝幀:平裝
  • 頁數:334
人民幣:RMB 119.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書結合實際應用場景講解數據結構和演算法,涵蓋常用、常考的數據結構和演算法的原理講解、代碼實現和應用場景等。
    本書分為11章。第1章介紹複雜度分析方法。第2章介紹數組、鏈表、棧和隊列這些基礎的線性表數據結構。第3章介紹遞歸編程技巧、8種經典排序、二分查找及二分查找的變體問題。第4章介紹哈希表、點陣圖、哈希演算法和布隆過濾器。第5章介紹樹相關的數據結構,包括二叉樹、二叉查找樹、平衡二叉查找樹、遞歸樹和B+樹。第6章介紹堆,以及堆的各種應用,包括堆排序、優先順序隊列、求Top K、求中位數和求百分位數。第7章介紹跳錶、並查集、線段樹和樹狀數組這些比較高級的數據結構。第8章介紹字元串匹配演算法,包括BF演算法、RK演算法、BM演算法、KMP演算法、Trie樹和AC自動機。第9章介紹圖及相關演算法,包括深度優先搜索、廣度優先搜索、拓撲排序、Dijkstra演算法、Floyd演算法、A*演算法、最小生成樹演算法、最大流演算法和最大二分匹配等。第10章介紹4種演算法思想,包括貪心、分治、回溯和動態規劃。第11章介紹4個經典項目中的數據結構和演算法的應用,包括Redis、搜索引擎、鑒許可權流和短網址服務。另外,附錄A為書中的思考題的解答。
    儘管本書的大部分代碼採用Java語言編寫,但本書講解的知識與具體編程語言無關,因此,本書不但適合各種類型的研發工程師,而且可以作為高校電腦相關專業師生的學慣用書和培訓學校的教材。

作者介紹
王爭|責編:張濤
    王爭,前Google工程師,微信公眾號【小爭哥】作者,GitHub上演算法教程Star數排名前列。熱衷分享,致力於通俗易懂地講解數據結構和演算法,幫助廣大程序員攻克演算法學習、演算法刷題、演算法面試三項難關。

目錄
第1章  複雜度分析
  1.1  複雜度分析(上):如何分析代碼的執行效率和資源消耗
    1.1.1  複雜度分析的意義
    1.1.2  大O複雜度表示法
    1.1.3  時間複雜度分析方法
    1.1.4  幾種常見的時間複雜度量級
    1.1.5  空間複雜度分析方法
    1.1.6  內容小結
    1.1.7  思考題
  1.2  複雜度分析(下):詳解最好、最壞、平均、均攤這4種時間複雜度
    1.2.1  最好時間複雜度和最壞時間複雜度
    1.2.2  平均時間複雜度
    1.2.3  均攤時間複雜度
    1.2.4  內容小結
    1.2.5  思考題
第2章  數組、鏈表、棧和隊列
  2.1  數組(上):為什麼數組的下標一般從0開始編號
    2.1.1  數組的定義
    2.1.2  定址公式和隨機訪問特性
    2.1.3  低效的插入和刪除操作
    2.1.4  警惕數組訪問越界問題
    2.1.5  容器能否完全替代數組
    2.1.6  解答本節開篇問題
    2.1.7  內容小結
    2.1.8  思考題
  2.2  數組(下):數據結構中的數組和編程語言中的數組的區別
    2.2.1  C/C++中數組的實現方式
    2.2.2  Java中數組的實現方式
    2.2.3  JavaScript中數組的實現方式
    2.2.4  內容小結
    2.2.5  思考題
  2.3  鏈表(上):如何基於鏈表實現LRU緩存淘汰演算法
    2.3.1  鏈表的底層存儲結構
    2.3.2  鏈表的定義和操作
    2.3.3  鏈表的變形結構
    2.3.4  鏈表與數組的性能對比
    2.3.5  解答本節開篇問題
    2.3.6  內容小結
    2.3.7  思考題
  2.4  鏈表(下):借助哪些技巧可以輕鬆地編寫鏈表相關的複雜代碼
    2.4.1  技巧1:理解指針或引用的含義
    2.4.2  技巧2:警惕指針丟失和內存泄露
    2.4.3  技巧3:利用「哨兵」簡化代碼
    2.4.4  技巧4:留意邊界條件和特殊情況
    2.4.5  技巧5:舉例畫圖,輔助思考
    2.4.6  技巧6:多寫多練,沒有捷徑
    2.4.7  內容小結
    2.4.8  思考題
  2.5  棧:如何實現瀏覽器的前進和後退功能
    2.5.1  棧的定義

    2.5.2  順序棧和鏈式棧
    2.5.3  支持動態擴容的順序棧
    2.5.4  棧在函數調用中的應用
    2.5.5  棧在表達式求值中的應用
    2.5.6  棧在括弧匹配中的應用
    2.5.7  解答本節開篇問題
    2.5.8  內容小結
    2.5.9  思考題
  2.6  隊列:如何實現線程池等有限資源池的請求排隊功能
    2.6.1  隊列的定義
    2.6.2  順序隊列和鏈式隊列
  ……
第3章  遞歸、排序、二分查找
第4章  哈希表、點陣圖和哈希演算法
第5章  樹
第6章  堆
第7章  跳錶、並查集、線段樹和樹狀數組
第8章  字元串匹配演算法
第9章  圖
第10章  貪心、分治、回溯和動態規劃
第11章  數據結構和演算法實戰
附錄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