算法圖解 (Grokking Algorithms: An illustrated guide for programmers and other curious people) 算法图解
巴爾加瓦 (Aditya Bhargava)
- 出版商: 人民郵電
- 出版日期: 2017-03-01
- 定價: $419
- 售價: 8.5 折 $356
- 語言: 簡體中文
- 頁數: 184
- 裝訂: 平裝
- ISBN: 7115447632
- ISBN-13: 9787115447630
-
相關分類:
Algorithms-data-structures
- 此書翻譯自: Grokking Algorithms: An illustrated guide for programmers and other curious people (Paperback)
-
相關翻譯:
白話演算法!培養程式設計的邏輯思考 (Grokking Algorithms: An illustrated guide for programmers and other curious people) (繁中版)
-
其他版本:
算法圖解(第2版)
買這商品的人也買了...
-
$590$502 -
$420$332 -
$301大話數據結構
-
$281程序員修煉之道 :從小工到專家 (The Pragmatic Programmer: From Journeyman to Master)
-
$360$284 -
$352機器視覺算法與應用 (雙語版)
-
$500$395 -
$580$458 -
$230Vue.js 前端開發快速入門與專業應用
-
$834$792 -
$480$379 -
$199挑戰編程技能 57道程序員功力測試題 (Exercises for Programmers:57 Challenges to Develop Your Coding Skills)
-
$474$450 -
$320$250 -
$580$458 -
$352面向機器智能的 TensorFlow 實踐
-
$403數據科學家養成手冊
-
$860$731 -
$590$460 -
$390$308 -
$480$379 -
$474$450 -
$380$296 -
$350$315 -
$580$458
相關主題
商品描述
本書示例豐富,圖文並茂,以讓人容易理解的方式闡釋了算法,旨在幫助程序員在日常項目中更好地發揮算法的能量。書中的前三章將幫助你打下基礎,帶你學習二分查找、大O表示法、兩種基本的數據結構以及遞歸等。餘下的篇幅將主要介紹應用廣泛的算法,具體內容包括:面對具體問題時的解決技巧,比如,何時採用貪婪算法或動態規劃;散列表的應用;圖算法;Kzui近鄰算法。
作者簡介
作者:【美】巴爾加瓦(Aditya Bhargava)譯者:袁國忠
Aditya Bhargava 軟件工程師,兼具計算機科學和美術方面的教育背景,在adit.io撰寫編程方面的博客。
目錄大綱
前言
致謝
關於本書
第1章算法簡介1
1.1引言1
1.1.1性能方面1
1.1.2問題解決技巧2
1.2二分查找2
1.2.1更佳的查找方式4
1.2.2運行時間8
1.3大O表示法8
1.3.1算法的運行時間以不同的速度增加9
1.3.2理解不同的大O運行時間10
1.3.3大O表示法指出了最糟情況下的運行時間12
1.3.4一些常見的大O運行時間12
1.3.5旅行商13
1.4小結15
第2章選擇排序16
2.1內存的工作原理16
2.2數組和鍊錶18
2.2.1鍊錶19
2.2.2數組20
2.2.3術語21
2.2.4在中間插入22
2.2.5刪除23
2.3選擇排序25
2.4小結28
第3章遞歸29
3.1遞歸29
3.2基線條件和遞歸條件32
3.3棧33
3.3.1調用棧34
3.3.2遞歸調用棧36
3.4小結40
第4章快速排序41
4.1分而治之41
4.2快速排序47
4.3再談大O表示法52
4.3.1比較合併排序和快速排序53
4.3.2平均情況和最糟情況54
4.4小結57
第5章散列表58
5.1散列函數60
5.2應用案例63
5.2.1將散列表用於查找63
5. 2.2防止重複64
5.2.3將散列表用作緩存66
5.2.4小結68
5.3衝突69
5.4性能71
5.4.1填裝因子72
5.4.2良好的散列函數74
5.5小結75
第6章廣度優先搜索76
6.1圖簡介77
6.2圖是什麼79
6.3廣度優先搜索79
6.3.1查找最短路徑82
6.3.2隊列83
6.4實現圖84
6.5實現算法86
6.6小結93
第7章狄克斯特拉算法94
7.1使用狄克斯特拉算法95
7.2術語98
7.3換鋼琴100
7.4負權邊105
7.5實現108
7.6小結116
第8章貪婪算法117
8.1教室調度問題117
8.2背包問題119
8.3集合覆蓋問題121
8.4 NP完全問題127
8.4.1旅行商問題詳解127
8.4.2如何識別NP完全問題131
8.5小結133
第9章動態規劃134
9.1背包問題134
9.1.1簡單算法135
9.1.2動態規劃136
9.2背包問題FAQ 143
9.2.1再增加一件商品將如何呢143
9.2.2行的排列順序發生變化時結果將如何145
9.2.3可以逐列而不是逐行填充網格嗎146
9.2.4增加一件更小的商品將如何呢146
9.2.5可以 商品的一部分嗎146
9.2.6旅遊行程最優化147
9.2.7處理相互依賴的情況148
9.2.8計算最終的解時會涉及兩個以上的子背包嗎148
9.2.9最優解可能導致背包沒裝滿嗎149
9.3最長公共子串149
9.3.1繪製網格150
9.3.2填充網格151
9.3.3揭曉答案152
9.3.4最長公共子序列153
9.3.5最長公共子序列之解決方案154
9.4小結155
第10章K最近鄰算法156
10.1橙子還是柚子156
10.2創建推薦系統158
10.2.1特徵抽取159
10.2.2回歸162
10.2.3挑選合適的特徵164
10.3機器學習簡介165
10.3.1 OCR 165
10.3.2創建垃圾郵件過濾器166
10.3.3預測股票市場167
10.4小結167
第11章接下來如何做168
11.1樹168
11.2反向索引171
11.3傅里葉變換171
11.4並行算法172
11.5 MapReduce 173
11.5.1分佈式算法為何很有用173
11.5.2映射函數173
11.5.3歸併函數174
11.6布隆過濾器和HyperLogLog 174
11.6.1布隆過濾器175
11.6.2 HyperLogLog 176
11.7 SHA算法176
11.7.1 較文件177
11.7.2檢查密碼178
11.8局部敏感的散列算法178
11.9 Diffie—Hellman密鑰交換179
11.10線性規劃180
11.11結語180
練習答案181