本書力圖以簡潔明了的例子講解筆試、面試中常涉及的數(shù)據(jù)結構與算法,包括以數(shù)組為代表的順序存儲結構及以鏈表為代表的鏈式存儲結構,并依次介紹了棧、隊列、樹、圖、Hash、幾個經(jīng)典的貪心算法,以及一些經(jīng)典的排序及查找算法。算法的世界奇妙無窮,我們只看到了其中一丁點璀璨,萬丈光芒的世界等我們一起探索和創(chuàng)造。 本書適用于學習數(shù)據(jù)結構和算法知識的人,希望學習如何解算法題或正在刷題的計算機行業(yè)從業(yè)者,可作為相關專業(yè)的輔導參考書。
一個讓算法更簡單的奮斗者。碩士畢業(yè),現(xiàn)就職于知名商業(yè)銀行,負責重要核心系統(tǒng)的研發(fā)和管理工作。擅長講解算法思路,拆解算法思路,以圖文并茂、通俗易懂的算法內(nèi)容獲得了全網(wǎng)讀者的一致好評。
1線性存儲結構——數(shù)組
1.1 數(shù)組簡介 / 2
1.2 Java中的數(shù)組 / 4
1.3 旋轉數(shù)組 / 13
2 鏈式存儲結構
2.1 單鏈表 / 28
2.2 雙向鏈表 / 36
2.3 循環(huán)鏈表 / 43
2.4 跳表 / 48
3棧
3.1 棧的定義 / 57
3.2 棧的順序存儲結構 / 58
3.3 棧的鏈式存儲結構 / 60
4隊列
4.1 隊列簡介 / 65
4.2 循環(huán)隊列 / 72
4.3 優(yōu)先級隊列 / 81
5 樹
5.1 樹的基本概念 / 87
5.2 樹的存儲結構 / 88
5.3 二叉樹 / 91
5.4 樹的遍歷 / 100
5.5 堆 / 105
5.6 二叉排序樹 / 121
5.7 平衡二叉樹 / 134
5.8 紅黑樹 / 155
5.9 B樹 / 183
5.10 B+樹 / 204
6 圖
6.1 圖簡介 / 231
6.2 圖的存儲結構 / 239
6.3 圖的遍歷 / 246
6.4 Union-Find算法 / 265
7Hash
7.1 基本概念 / 282
7.2 緩解Hash碰撞的方案 / 284
7.3 Hash算法的應用 / 303
8貪心算法
8.1 貪心算法概述 / 305
8.2 Dijkstra算法 / 307
8.3 Kruskal算法 / 316
8.4 Prim算法 / 323
8.5 赫夫曼編碼 / 334
9 排序及查找算法
9.1 排序基本概念 / 348
9.2 冒泡排序 / 350
9.3 插入排序 / 356
9.4 希爾排序 / 359
9.5 選擇排序 / 363
9.6 穩(wěn)定選擇排序 / 367
9.7 歸并排序 / 370
9.8 快速排序 / 378
9.9 計數(shù)排序 / 388
9.10 基數(shù)排序 / 395
9.11 堆排序 / 400
9.12 線性搜索 / 410
9.13 二分查找 / 412