标题：编程珠玑（续）
基本信息
原书名：     More Programming Pearls: Confessions of a Coder
原出版社：     Addision Wesley  编程珠玑（续）丛书名：     图灵原版计算机科学系列
分类：     计算机
计算机 >> 程序设计
计算机 >> 算法与计算理论 >> 算法
作者：     Jon Bentley
译者：     钱丽艳  刘田
出版日期：     2011-05-01
语种：     简体中文
开本：     16开
页数：     196
定价：     35.00 元人民币
摘要
本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇，讲述了对于程序员有共性的知识。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例，这些内容组成一个有机的整体，如一串串珠玑展示给程序员。本书适合各级程序员阅读参考。
译序
本书作者Jon Bentley是美国著名的程序员和计算机科学家，他于20世纪70年代前后在很有影响力的《ACM通讯》（Communications of the ACM）上以专栏的形式连续发表了一系列短文，成功地总结和提炼了自己在长期的计算机程序设计实践中积累下来的宝贵经验。这些短文充满了真知灼见，而且文笔生动、可读性强，对于提高职业程序员的专业技能很有帮助，因此该专栏大受读者欢迎，成为当时该学术期刊的王牌栏目之一。可以想象当时的情形，颇似早年金庸先生在《明报》上连载其武侠小说的盛况。后来在ACM的鼓励下，作者经过仔细修订和补充整理，对各篇文章做了精心编排，分别在1986年和1988年结集出版了Programming Pearls（《编程珠玑》）和More Programming Pearls（《编程珠玑（续）》）这两本书，二者均成为该领域的名著。《编程珠玑（第2版）》在2000年问世，书中的例子都改用C语言书写，并多处提到如何用C++和Java中的类来实现。《编程珠玑（续）》虽未再版，例子多以Awk语言写成，但其语法与C相近，容易看懂。
作者博览群书，旁征博引，无论是计算机科学的专业名著，如《计算机程序设计艺术》，还是普通的科普名著，如《啊哈！灵机一动》，都在作者笔下信手拈来、娓娓道出，更不用说随处可见的作者自己的真知灼见了。如果说《计算机程序设计艺术》这样的巨著代表了程序员们使用的“坦克和大炮”一类的重型武器，这两本书则在某种程度上类似于鲁迅先生所说的“匕首与投枪”一类的轻型武器，更能满足职业程序员的日常需要。或者说前者是武侠小说中提高内力修为的根本秘籍，后者是点拨临阵招数的速成宝典，二者同样都是克敌制胜的法宝，缺一不可。在无止境地追求精湛技艺这一点上，程序员、数学家和武侠们其实是相通的。
在美国，这两本书不仅被用作大学低年级数据结构与算法课程的教材，还用作高年级算法课程的辅助教材。例如，美国著名大学麻省理工学院的电气工程与计算机科学开放式核心课程算法导论就将这两本书列为推荐读物。这两本书覆盖了大学算法课程和数据结构课程的大部分内容，但是与普通教材的侧重点又不一样，不强调单纯从数学上进行分析的技巧，而是强调结合实际问题来进行分析、应用和实现的技巧，因此可作为大学计算机专业的算法、数据结构、软件工程等课程的教师参考用书和优秀课外读物。书中有许多真实的历史案例和许多极好的练习题以及部分练习题的提示与解答，非常适合自学。正如作者所建议的那样，阅读这两本书时，读者需要备有纸和笔，最好还有一台计算机在手边，边读边想、边想边做，这样才能将阅读这两本书的收益最大化。
人民邮电出版社引进版权，同时翻译出版了《编程珠玑（第2版）》和《编程珠玑（续）》，使这两个中译本珠联璧合，相信这不仅能极大地满足广大程序员读者的需求，还有助于提高国内相关课程的授课质量和学生的学习兴趣。
本书主要由钱丽艳和刘田翻译，翻译过程中得到了严浩、李梁、任铁男三位研究生的帮助，在此一并表示感谢。由于本书内容深刻，语言精妙，而译者的水平和时间都比较有限，错误和不当之处在所难免，敬请广大读者批评指正。
目录
第一部分  编 程 技 术
第1 章  性能监视工具　　3
1.1 计算素数　　3
1.2 使用性能监视工具　　7
1.3 专用的性能监视工具　　 8
1.4 开发性能监视工具　　10
1.5 原理　　11
1.6 习题　　11
1.7 深入阅读　　12
第2 章  关联数组　　13
2.1 Awk 中的关联数组　　 13
2.2 有穷状态机模拟器　　 16
2.3 拓扑排序　　17
2.4 原理　　20
2.5 习题　　21
2.6 深入阅读　　22
第3 章  程序员的忏悔　　 23
3.1 二分搜索　　24
3.2 选择算法　　26
3.3 子程序库　　28
3.4 原理　　30
3.5 习题　　31
第4 章  自描述数据　　33
4.1 名字—值对　　33
4.2 记录来历　　36
4.3 排序实验　　37
4.4 原理　　39
4.5 习题　　39
第二部分  实 用 技 巧
第5 章  劈开戈尔迪之结 43
5.1 小测验　　43
5.2 解答　　44
5.3 提示　　44
5.4 原理　　47
5.5 习题　　48
5.6 深入阅读　　49
5.7 调试（边栏） 　　49
第6 章  计算机科学箴言集 51
6.1 编码　　52
6.2 用户界面　　53
6.3 调试　　53
6.4 性能　　54
6.5 文档　　56
6.6 软件管理　　56
6.7 其他　　58
6.8 原理　　58
6.9 习题　　58
6.10 深入阅读　　60
第7 章  粗略估算　　61
7.1 头脑热身　　61
7.2 性能的经验法则　　62
7.3 Little 定律　　64
7.4  原理　　65
7.5 习题　　66
7.6 深入阅读　　67
7.7 日常速算（边栏）　　 67
第8 章  人员备忘录　　69
8.1 备忘录　　69
8.2 原理　　71
8.3 深入阅读　　71
第三部分  人性化I/O
第9 章  小语言　　75
9.1 Pic 语言　　76
9.2 视角　　79
9.3 Pic 预处理器　　81
9.4 用来实现Pic 的小语言83
9.5 原理　　87
9.6 习题　　88
9.7 深入阅读　　89
第10 章  文档设计　　91
10.1 表格　　92
10.2 三条设计原则　　94
10.3 插图　　94
10.4 文本　　96
10.5 合适的媒介　　98
10.6 原理　　100
10.7 习题　　101
10.8 深入阅读　　101
10.9 次要问题目录（边栏） 101
第11 章  图形化输出　　103
11.1 实例研究　　103
11.2 显示结果取样　　105
11.3 原理　　107
11.4 习题　　108
11.5 深入阅读　　110
11.6 拿破仑远征莫斯科（边栏） 110
第12 章  对调查的研究113
12.1 有关民意调查的问题113
12.2 语言　　114
12.3 图片　　117
12.4 原理　　119
12.5 习题　　120
第四部分  算 法
第13 章  绝妙的取样　　123
13.1 取样算法一瞥　　123
13.2 Floyd 算法　　124
13.3 随机排列　　125
13.4 原理　　127
13.5 习题　　127
13.6 深入阅读　　128
第14 章  编写数值计算程序129
14.1 问题　　129
14.2 牛顿迭代　　130
14.3 良好的起点　　132
14.4 代码　　133
14.5 原理　　135
14.6 习题　　135
14.7 深入阅读　　137
14.8 数值算法的力量（边栏） 137
第15 章  选择　　141
15.1 问题　　141
15.2 程序　　142
15.3 运行时间分析　　145
15.4 原理　　148
15.5 习题　　149
15.6 深入阅读　　151
附录A C 和Awk 语言　　153
附录B 子程序库　　157
部分习题答案　　165
索引　　　　181