新書推薦:
《
大学问·明清经济史讲稿
》
售價:NT$
330.0
《
中国国际法年刊(2023)
》
售價:NT$
539.0
《
早点知道会幸福的那些事
》
售價:NT$
295.0
《
迈尔斯普通心理学
》
售價:NT$
760.0
《
古典的回響:溪客舊廬藏明清文人繪畫
》
售價:NT$
1990.0
《
掌故家的心事
》
售價:NT$
390.0
《
孤独传:一种现代情感的历史
》
售價:NT$
390.0
《
家、金钱和孩子
》
售價:NT$
295.0
|
編輯推薦: |
历史上最伟大的计算机科学著作之一
融深邃思想、实战技术与趣味轶事于一炉的奇书
带你真正领略计算机科学之美
多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。
在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以CC++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。
|
內容簡介: |
本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。
|
關於作者: |
作者简介
Jon Bentley 世界著名计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976~1982)、贝尔实验室(1982~2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles Leiserson在内的许多计算机科学大家。2004年荣获Dr. Dobb''s程序设计卓越奖。
译者简介
黄倩 工学博士,中国计算机学会高级会员,先后就读于南京大学、中国科学院计算技术研究所,先后工作于联发博动科技(北京)有限公司、河海大学计算机与信息学院。主要从事视频处理、机器学习方面的研究工作,获国家自然科学基金资助1项,发表论文十余篇。
钱丽艳 北京大学信息科学技术学院基础实验教学研究所软件实验室主任、高级工程师、毕业于国防科技大学,目前主要从事数值计算、程序设计方面的研究工作。
审校人简介
刘田 北京大学信息科学技术学院软件研究所副教授、中国电子学会电路与系统分会图论与系统优化专业委员会秘书长、中国计算机学会和中国电子学会高级会员,毕业于中国科学技术大学,目前主要从事算法分析和计算复杂度、量子信息处理等方面的研究工作,翻译出版了多部国外著名离散数学和计算机理论教材。
|
目錄:
|
第一部分 基础
第1章 开 篇3
1.1 一次友好的对话3
1.2 准确的问题描述4
1.3 程序设计4
1.4 实现概要6
1.5 原理7
1.6 习题8
1.7 深入阅读9
第2章 啊哈!算法11
2.1 三个问题11
2.2 无处不在的二分搜索12
2.3 基本操作的威力14
2.4 排序16
2.5 原理17
2.6 习题18
2.7 深入阅读20
2.8 变位词程序的实现(边栏)20
第3章 数据决定程序结构23
3.1 一个调查程序23
3.2 格式信函编程26
3.3 一组示例28
3.4 结构化数据29
3.5 用于特殊数据的强大工具30
3.6 原理32
3.7 习题33
3.8 深入阅读34
第4章 编写正确的程序37
4.1 二分搜索的挑战37
4.2 编写程序38
4.3 理解程序40
4.4 原理43
4.5 程序验证的角色44
4.6 习题45
4.7 深入阅读48
第5章 编程小事49
5.1 从伪代码到C程序49
5.2 测试工具51
5.3 断言的艺术53
5.4 自动测试55
5.5 计时56
5.6 完整的程序58
5.7 原理59
5.8 习题59
5.9 深入阅读61
5.10 调试(边栏)61
第二部分 性能
第6章 程序性能分析65
6.1 实例研究65
6.2 设计层面67
6.3 原理69
6.4 习题69
6.5 深入阅读70
第7章 粗略估算71
7.1 基本技巧72
7.2 性能估计74
7.3 安全系数76
7.4 Little定律78
7.5 原理79
7.6 习题79
7.7 深入阅读80
7.8 日常生活中的速算(边栏)81
第8章 算法设计技术83
8.1 问题及简单算法83
8.2 两个平方算法84
8.3 分治算法86
8.4 扫描算法87
8.5 实际运行时间88
8.6 原理90
8.7 习题91
8.8 深入阅读92
第9章 代码调优95
9.1 典型的故事95
9.2 急救方案集锦96
9.3 大手术——二分搜索101
9.4 原理105
9.5 习题106
9.6 深入阅读108
第10章 节省空间109
10.1 关键在于简单109
10.2 示例问题110
10.3 数据空间技术113
10.4 代码空间技术116
10.5 原理118
10.6 习题119
10.7 深入阅读120
10.8 巨大的节省(边栏)121
第三部分 应用
第11章 排 序125
11.1 插入排序125
11.2 一种简单的快速排序127
11.3 更好的几种快速排序130
11.4 原理133
11.5 习题133
11.6 深入阅读135
第12章 取样问题137
12.1 问题137
12.2 一种解决方案138
12.3 设计空间139
12.4 原理142
12.5 习题143
12.6 深入阅读144
第13章 搜 索145
13.1 接口145
13.2 线性结构147
13.3 二分搜索树151
13.4 用于整数的结构153
13.5 原理155
13.6 习题156
13.7 深入阅读157
13.8 一个实际搜索问题(边栏)157
第14章 堆161
14.1 数据结构161
14.2 两个关键函数163
14.3 优先级队列166
14.4 一种排序算法169
14.5 原理171
14.6 习题172
14.7 深入阅读174
第15章 字符串175
15.1 单词175
15.2 短语179
15.3 生成文本182
15.4 原理187
15.5 习题188
15.6 深入阅读189
第1版跋191
第2版跋195
附录A 算法分类197
附录B 估算测试203
附录C 时空开销模型205
附录D 代码调优法则211
附录E 用于搜索的C++类217
部分习题提示223
部分习题答案229
索引259
|
|