编程珠玑(第2版)(图灵程序设计丛书)

分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,综合,
品牌: Jon Bentley
基本信息·出版社:人民邮电出版社
·页码:228 页
·出版日期:2008年
·ISBN:711517928X/9787115179289
·条形码:9787115179289
·包装版本:2版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:图灵程序设计丛书
产品信息有问题吗?请帮我们更新产品信息。
内容简介《编程珠玑》(第2版)(图灵程序设计丛书)是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。
作者简介Jon Bentley,世界著名计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基—梅隆大学(1976—1982)、贝尔实验室(1982—2001)和Avaya实验室(2001年至今)。在卡内基—梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles Leiserson在内的许多计算机科学大家。2004年荣获Dr.Dobb's程序设计卓越奖。.
钱丽艳,北京大学信息科学技术学院基础实验教学研究所软件实验室主任、工程师,毕业于国防科技大学,目前.。
编辑推荐《编程珠玑》(第2版)(图灵程序设计丛书)的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。《编程珠玑(第二版)》对各个层次的程序员都具有很高的阅读价值。
目录
第一部分基础
第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.4Little定律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
……[看更多目录]
序言本书作者Jon Bentley是美国著名的程序员和计算机科学家,他于20世纪70年代前后在很有影响力的《ACM通讯》(Communications of the ACM)上以专栏的形式连续发表了一系列短文,成功地总结和提炼了自己在长期的计算机程序设计实践中积累下来的宝贵经验。这些短文充满了真知灼见,而且文笔生动、可读性强,对于提高职业程序员的专业技能很有帮助,因此该专栏大受读者欢迎,成为当时该学术期刊的王牌栏目之一。可以想象当时的情形颇似早年金庸先生在《明报》上连载其武侠小说的盛况。后来在ACM的鼓励下,作者经过仔细修订和补充整理,对各篇文章的先后次序做了精心编排,分别在1986年和1988年结集出版了Programming Pearls(《编程珠玑》)和More Programming Pearls(《编程珠玑Ⅱ》)这两本书,二者均成为该领域的名著。《编程珠玑(第2版)》在2000年问世,书中的例子都改用C语言书写,并多处提到如何用C++和Java中的类来实现。《编程珠玑Ⅱ》虽未再版,例子多以Awk语言写成,但其语法与C相近,容易看懂。
作者博览群书,旁征博引,无论是计算机科学的专业名著,如《计算机程序设计艺术》,还是普通的科普名著,如《啊哈!灵机一动》,都在作者笔下信手拈来、娓娓道出,更不用说随处可见的作者自己的真知灼见了。如果说《计算机程序设计艺术》这样的巨著代表了程序员们使用的“坦克和大炮”一类的重型武器,这两本书则在某种程度上类似于鲁迅先生所说的“匕首与投枪”一类的轻型武器,更能满足职业程序员的日常需要。或者说前者是武侠小说中提高内力修为的根本秘籍,后者是点拨临阵招数的速成宝典,二者同样都是克敌制胜的法宝,缺一不可。在无止境地追求精湛技艺这一点上,程序员、数学家和武侠们其实是相通的。
在美国,这两本书不仅被用作大学低年级数据结构与算法课程的教材,还用作高年级算法课程的辅助教材。例如,美国著名大学麻省理工学院的电气工程与计算机科学开放式核心课程算法导论就将这两本书列为推荐读物。这两本书覆盖了大学算法课程和数据结构课程的大部分内容,但是与普通教材的侧重点又不一样,不强调单纯从数学上来进行分析的技巧,而是强调结合实际问题来进行分析、应用和实现的技巧,因此可作为大学计算机专业的算法、数据结构、软件工程等课程的教师参考用书和优秀课外读物。书中有许多真实的历史案例和许多极好的练习题以及部分练习题的提示与解答,非常适合自学。正如作者所建议的那样,阅读这两本书时,读者需要备有纸和笔,最好还有一台计算机在手边,边读边想、边想边做,这样才能将阅读这两本书的收益最大化。
文摘插图:

后记本书作者Jon Bentley是美国著名的程序员和计算机科学家,他于20世纪70年代前后在很有影响力的《ACM通讯》(Communications of the ACM)上以专栏的形式连续发表了一系列短文,成功地总结和提炼了自己在长期的计算机程序设计实践中积累下来的宝贵经验。这些短文充满了真知灼见,而且文笔生动、可读性强,对于提高职业程序员的专业技能很有帮助,因此该专栏大受读者欢迎,成为当时该学术期刊的王牌栏目之一。可以想象当时的情形颇似早年金庸先生在《明报》上连载其武侠小说的盛况。后来在ACM的鼓励下,作者经过仔细修订和补充整理,对各篇文章的先后次序做了精心编排,分别在1986年和1988年结集出版了Programming Pearls(《编程珠玑》)和More Programming Pearls(《编程珠玑Ⅱ》)这两本书,二者均成为该领域的名著。《编程珠玑(第2版)》在2000年问世,书中的例子都改用C语言书写,并多处提到如何用C++和Java中的类来实现。《编程珠玑Ⅱ》虽未再版,例子多以Awk语言写成,但其语法与C相近,容易看懂。
作者博览群书,旁征博引,无论是计算机科学的专业名著,如《计算机程序设计艺术》,还是普通的科普名著,如《啊哈!灵机一动》,都在作者笔下信手拈来、娓娓道出,更不用说随处可见的作者自己的真知灼见了。如果说《计算机程序设计艺术》这样的巨著代表了程序员们使用的“坦克和大炮”一类的重型武器,这两本书则在某种程度上类似于鲁迅先生所说的“匕首与投枪”一类的轻型武器,更能满足职业程序员的日常需要。或者说前者是武侠小说中提高内力修为的根本秘籍,后者是点拨临阵招数的速成宝典,二者同样都是克敌制胜的法宝,缺一不可。在无止境地追求精湛技艺这一点上,程序员、数学家和武侠们其实是相通的。
在美国,这两本书不仅被用作大学低年级数据结构与算法课程的教材,还用作高年级算法课程的辅助教材。例如,美国著名大学麻省理工学院的电气工程与计算机科学开放式核心课程算法导论就将这两本书列为推荐读物。这两本书覆盖了大学算法课程和数据结构课程的大部分内容,但是与普通教材的侧重点又不一样,不强调单纯从数学上来进行分析的技巧,而是强调结合实际问题来进行分析、应用和实现的技巧,因此可作为大学计算机专业的算法、数据结构、软件工程等课程的教师参考用书和优秀课外读物。书中有许多真实的历史案例和许多极好的练习题以及部分练习题的提示与解答,非常适合自学。正如作者所建议的那样,阅读这两本书时,读者需要备有纸和笔,最好还有一台计算机在手边,边读边想、边想边做,这样才能将阅读这两本书的收益最大化。