漫畫算法2:小灰的算法進階
魏夢舒
- 出版商: 電子工業
- 出版日期: 2021-05-01
- 定價: $528
- 售價: 8.5 折 $449
- 語言: 簡體中文
- 頁數: 248
- 裝訂: 平裝
- ISBN: 7121411318
- ISBN-13: 9787121411311
已絕版
買這商品的人也買了...
-
$1,421C Programming: A Modern Approach, 2/e (Paperback)
-
$1,710$1,620 -
$810$770 -
$199編程珠璣, 2/e (修訂版) (Programming Pearls, 2/e)
-
$403我的第一本編程書
-
$1,755Head First Learn to Code: A Learner's Guide to Coding and Computational Thinking
-
$210$200 -
$520$411 -
$301笨辦法學 Python 3 (Learn Python 3 the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code)
-
$1,280$998 -
$250計算思維與算法入門
-
$403漫畫算法:小灰的算法之旅
-
$1,380$1,311 -
$403漫畫算法:小灰的算法之旅 (Python 篇)
-
$580$493 -
$360$281 -
$505labuladong 的算法小抄
-
$454算法第一步(Python版)
-
$588$559 -
$713算法訓練營:海量圖解 + 競賽刷題 (進階篇)
-
$505WebRTC 技術詳解:從0到1構建多人視頻會議系統
-
$404編程競賽寶典 C++ 語言和算法入門
-
$720$562 -
$680$537 -
$650$507
相關主題
商品描述
本書是《漫畫算法:小灰的算法之旅》的續作,通過主人公小灰的心路歷程,用漫畫的形式講述了多個數據結構、算法及復雜多變的算法面試題目。 第1章介紹了幾種典型的排序算法,包括選擇排序、插入排序、希爾排序、歸並排序、基數排序。 第2章介紹了"樹”結構的高級應用,包括二叉查找樹、AVL樹、紅黑樹、B樹和B+樹。 第3章介紹了"圖”結構的概念,以及深度優先遍歷、廣度遍歷、單源最短路徑、多源最短路徑算法。 第4章介紹了"查找”相關的算法和數據結構,包括二分查找算法、RK算法,KMP算法,以及"跳錶”這種用於高效查找的數據結構。 第5章介紹了多種職場上流行的算法面試題目及詳細的解題思路。例如螺旋遍歷二維數組、尋找數組中第k大元素、求股票交易的最大收益等等。
作者簡介
魏夢舒(@程序員小灰):微信公眾號“程序員小灰”的作者,多年軟件行業從業經驗,先後在京東金融和摩拜科技從事研發工作,對算法有一定的興趣和經驗。
目錄大綱
第1章排序算法進階/ 1
1.1 新的開始/ 1
1.2 什麼是選擇排序/ 3
1.2.1 如何減少比較次數/ 3
1.2.2 選擇排序的實現/ 8
1.3 什麼是插入排序/ 10
1.3.1 撲克牌中的排序算法/ 10
1.3.2 插入排序的優化/ 14
1.4 什麼是希爾排序/ 16
1.4.1 插入排序的升級/ 16
1.4.2 希爾排序的優化/ 20
1.5 什麼是歸併排序/ 22
1.5.1 擂台上的排序算法/ 22
1.5.2 歸併排序的具體操作/ 25
1.6 什麼是基數排序/ 29
1.6.1 另一種線性排序算法/ 29
1.6.2 解決對齊問題/ 33
1.7 小結/ 35
第2章樹的進階/ 37
2.1 什麼是二叉查找樹/ 37
2.1.1 二叉樹查找樹的特性/ 37
2.1.2 二叉查找樹的插入和刪除/ 40
2.1.3 二叉查找樹的缺陷/ 45
2.2 什麼是平衡二叉樹/ 47
2.2.1 平衡因子和旋轉/ 47
2.2.2 平衡二叉樹的插入和刪除/ 53
2.3 什麼是紅黑樹/ 58
2.3.1 另一種自平衡方式/ 58
2.3.2 紅黑樹的插入/ 62
2.3.3 紅黑樹的刪除/ 68
2.3.4 紅黑樹的實踐和應用場景/ 76
2.4 什麼是B樹和B+樹/ 79
2.4.1 數據庫的索引/ 79
2.4.2 什麼是B樹/ 81
2.4.3 什麼是B+樹/ 88
2.5 小結/ 90
第3章圖/ 91
3.1 什麼是圖/ 91
3.1.1 圖的基本概念/ 91
3.1.2 圖的存儲方式/ 95
3.2 圖的遍歷/ 97
3.2.1 深度優先和廣度優先/ 97
3.2.2 遍歷的具體實現/ 101
3.3 圖的最短路徑/ 107
3.3.1 什麼是迪傑斯特拉算法/ 107
3.3.2 迪傑斯特拉算法的原理/ 111
3.3.3 如何得到完整路徑/ 116
3.4 圖的多源最短路徑/ 125
3.5 小結/ 132
第4章查找算法/ 133
4.1 引言/ 133
4.2 什麼是二分查找/ 135
4.2.1 一個特殊的遊戲/ 135
4.2.2 二分查找的原理/ 138
4.3 什麼是跳表/ 141
4.3.1 鍊錶能做二分查找嗎/ 141
4.3.2 跳表的插入與刪除/ 146
4.4 什麼是字符串匹配算法/ 155
4.4.1 樸素的字符串匹配/ 155
4.4.2 樸素字符串匹配的改進/ 158
4.5 什麼是KMP算法/ 164
4.5.1 無謂的字符比較/ 164
4.5.2 KMP算法的原理/ 166
4.6 小結/ 176
第5章面試中的算法/ 177
5.1 躊躇滿志的小灰/ 177
5.2 如何螺旋遍歷二維數組/ 179
5.2.1 第一次交鋒/ 179
5.2.2 解題思路/ 181
5.3 兩數之和與三數之和/ 187
5.3.1 再接再厲/ 187
5.3.2 解題思路/ 189
5.3.3 問題的擴展/ 194
5.4 數組中的第k個最大元素/ 201
5.4.1 一道數組相關的題目/ 201
5.4.2 解題思路/ 204
5.5 鍊錶的倒數第k個節點/ 210
5.5.1 一道鍊錶相關的題目/ 210
5.5.2 解題思路/ 212
5.6 千變萬化的股票交易問題/ 216
5.6.1 如何獲得最大收益/ 216
5.6.2 解題思路/ 218
5.6.3 題目變形:買賣次數不限/ 220
5.6.4 題目再變形:2次買賣/ 221
5.6.5 最後的勝利/ 233
5.7 結束也是開始/ 235