編程珠玑(第2版•修訂版)

編程珠玑(第2版•修訂版)

作者: [美] Jon Bentley 喬恩•本特利

ISBN: 9787115357618

EBID:267643

出版時間: 2014-12-01 出版社: 人民郵電出版社

曆史上最偉大的計算機科學著作之一
融深邃思想、實戰技術與趣味轶事于一爐的奇書
帶你真正領略計算機科學之美
多年以來,當程序員們推選出最心愛的計算機圖書時,《編程珠玑》總是位于前列。正如自然界裡珍珠出自細沙對牡蛎的磨砺,計算機科學大師Jon Bentley以其獨有的洞察力和創造力,從磨砺程序員的實際問題中凝結出一篇篇不朽的編程“珠玑”,成為世界計算機界名刊《ACM通訊》曆史上最受歡迎的專欄,最終結集為兩部不朽的計算機科學經典名著,影響和激勵着一代又一代程序員和計算機科學工作者。本書為第一卷,主要讨論計算機科學中最本質的問題:如何正确選擇和高效地實現算法。
在書中,作者選取許多具有典型意義的複雜編程和算法問題,生動描繪了曆史上衆大師們在探索解決方案中發生的轶事、走過的彎路和不斷精益求精的曆程,引導讀者像真正的程序員和軟件工程師那樣富于創新性地思考,并透徹闡述和總結了許多獨特而精妙的設計原則、思考和解決問題的方法以及實用程序設計技巧。解決方案的代碼均以C/C++語言編寫,不僅有趣,而且有很大的實戰示範意義。每章後所附習題極具挑戰性和啟發性,書末給出了簡潔的解答。
本書是計算機科學方面的經典名著。書的内容圍繞程序設計人員面對的一系列實際問題展開。作者Jon Bentley 以其獨有的洞察力和創造力,引導讀者理解這些問題并學會解決方法,而這些正是程序員實際編程生涯中至關重要的。本書的特色是通過一些精心設計的有趣而又頗具指導意義的程序,對實用程序設計技巧及基本設計原則進行了透徹而睿智的描述,為複雜的編程問題提供了清晰而完備的解決思路。本書對各個層次的程序員都具有很高的閱讀價值。
書評
“《編程珠玑》是對我職業生涯早期影響最大的書之一,其中的許多真知灼見多年之後仍然使我受益匪淺。”
——Steve McConnell,軟件工程大師,IEEE Software前主編,《代碼大全》作者
第一部分 基礎
第1章 開篇 3
1.1 一次友好的對話 3
1.2 準确的問題描述 4
1.3 程序設計 4
1.4 實現概要 5
1.5 原理 6
1.6 習題 7
1.7 深入閱讀 9
第2章 啊哈! 算法 11
2.1 三個問題 11
2.2 無處不在的二分搜索 12
2.3 基本操作的威力 13
2.4 排序 15
2.5 原理 16
2.6 習題 17
2.7 深入閱讀 18
2.8 變位詞程序的實現(邊欄) 18
第3章 數據決定程序結構 21
3.1 一個調查程序 21
3.2 格式信函編程 23
3.3 一組示例 25
3.4 結構化數據 26
3.5 用于特殊數據的強大工具 27
3.6 原理 28
3.7 習題 29
3.8 深入閱讀 30
第4章 編寫正确的程序 33
4.1 二分搜索的挑戰 33
4.2 編寫程序 34
4.3 理解程序 36
4.4 原理 38
4.5 程序驗證的角色 39
4.6 習題 40
4.7 深入閱讀 42
第5章 編程小事 43
5.1 從僞代碼到C程序 43
5.2 測試工具 44
5.3 斷言的藝術 46
5.4 自動測試 48
5.5 計時 49
5.6 完整的程序 50
5.7 原理 51
5.8 習題 51
5.9 深入閱讀 52
5.10 調試(邊欄) 53
第二部分 性能
第6章 程序性能分析 57
6.1 實例研究 57
6.2 設計層面 59
6.3 原理 60
6.4 習題 61
6.5 深入閱讀 61
第7章 粗略估算 63
7.1 基本技巧 64
7.2 性能估計 66
7.3 安全系數 68
7.4 Little定律 69
7.5 原理 70
7.6 習題 70
7.7 深入閱讀 71
7.8 日常生活中的速算(邊欄) 72
第8章 算法設計技術 73
8.1 問題及簡單算法 73
8.2 兩個平方算法 74
8.3 分治算法 75
8.4 掃描算法 77
8.5 實際運行時間 77
8.6 原理 79
8.7 習題 80
8.8 深入閱讀 81
第9章 代碼調優 83
9.1 典型的故事 83
9.2 急救方案集錦 84
9.3 大手術——二分搜索 88
9.4 原理 91
9.5 習題 92
9.6 深入閱讀 94
第10章 節省空間 95
10.1 關鍵在于簡單 95
10.2 示例問題 96
10.3 數據空間技術 99
10.4 代碼空間技術 101
10.5 原理 103
10.6 習題 104
10.7 深入閱讀 105
10.8 巨大的節省(邊欄) 105
第三部分 應用
第11章 排序 109
11.1 插入排序 109
11.2 一種簡單的快速排序 110
11.3 更好的幾種快速排序 113
11.4 原理 115
11.5 習題 116
11.6 深入閱讀 117
第12章 取樣問題 119
12.1 問題 119
12.2 一種解決方案 120
12.3 設計空間 121
12.4 原理 123
12.5 習題 124
12.6 深入閱讀 125
第13章 搜索 127
13.1 接口 127
13.2 線性結構 129
13.3 二分搜索樹 132
13.4 用于整數的結構 134
13.5 原理 135
13.6 習題 136
13.7 深入閱讀 137
13.8 一個實際搜索問題(邊欄) 137
第14章 堆 141
14.1 數據結構 141
14.2 兩個關鍵函數 143
14.3 優先級隊列 145
14.4 一種排序算法 148
14.5 原理 150
14.6 習題 150
14.7 深入閱讀 152
第15章 字符串 153
15.1 單詞 153
15.2 短語 156
15.3 生成文本 158
15.4 原理 163
15.5 習題 163
15.6 深入閱讀 164
第1版跋 165
第2版跋 167
附錄A 算法分類 169
附錄B 估算測試 173
附錄C 時空開銷模型 175
附錄D 代碼調優法則 181
附錄E 用于搜索的C++類 187
部分習題提示 191
部分習題答案 195
索引 221
暫無短評我來說幾句