
Jon Bentley 世界著名计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976~1982)、贝尔实验室(1982~2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles Leiserson在内的许多计算机科学大家。2004年荣获Dr. Dobb s程序设计卓越奖。译者简介钱丽艳 北京大学信息科学技术学院基础实验教学研究所软件实验室主任、高级工程师、毕业于国防科技大学,目前主要从事数值计算、程序设计方面的研究工作。刘田 北京大学信息科学技术学院软件研究所副教授、中国电子学会电路与系统分会图论与系统优化专业委员会秘书长、中国计算机学会和中国电子学会高级会员,毕业于中国科学技术大学,目前主要从事算法分析和计算复杂度、量子信息处理等方面的研究工作,翻译出版了多部国外著名离散数学和计算机理论教材。
历史上最伟大的计算机科学著作之一融深邃思想、实战技术与趣味轶事于一炉的奇书带你真正领略计算机科学之美多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第二卷,秉承了第一卷的风格,但本书涉及的范围更广,包括文档、小语言、性能监视、图形输出等。在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。本书延续了《编程珠玑》的特色,通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行透彻而睿智的描述,为复杂的编程问题提供清晰而完备的解决思路。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容结合成一个有机的整体,如一串串珠玑展示给程序员。本书对各个层次的程序员都具有很高的阅读价值。“《编程珠玑》是对我职业生涯早期影响最大的书之一,其中的许多真知灼见多年之后仍然使我受益匪浅。”——Steve McConnell,软件工程大师,IEEE Software前主编,《代码大全》作者
第一部分 编 程 技 术第1 章 性能监视工具 31.1 计算素数 31.2 使用性能监视工具 71.3 专用的性能监视工具 81.4 开发性能监视工具 101.5 原理 111.6 习题 111.7 深入阅读 12第2 章 关联数组 132.1 Awk 中的关联数组 132.2 有穷状态机模拟器 162.3 拓扑排序 172.4 原理 202.5 习题 212.6 深入阅读 22第3 章 程序员的忏悔 233.1 二分搜索 243.2 选择算法 263.3 子程序库 283.4 原理 303.5 习题 31第4 章 自描述数据 334.1 名字—值对 334.2 记录来历 364.3 排序实验 374.4 原理 394.5 习题 39第二部分 实 用 技 巧第5 章 劈开戈尔迪之结 435.1 小测验 435.2 解答 445.3 提示 445.4 原理 475.5 习题 485.6 深入阅读 495.7 调试(边栏) 49第6 章 计算机科学箴言集 516.1 编码 526.2 用户界面 536.3 调试 536.4 性能 546.5 文档 566.6 软件管理 566.7 其他 586.8 原理 586.9 习题 586.10 深入阅读 60第7 章 粗略估算 617.1 头脑热身 617.2 性能的经验法则 627.3 Little 定律 647.4 原理 657.5 习题 667.6 深入阅读 677.7 日常速算(边栏) 67第8 章 人员备忘录 698.1 备忘录 698.2 原理 718.3 深入阅读 71第三部分 人性化I/O第9 章 小语言 759.1 Pic 语言 769.2 视角 799.3 Pic 预处理器 819.4 用来实现Pic 的小语言839.5 原理 879.6 习题 889.7 深入阅读 89第10 章 文档设计 9110.1 表格 9210.2 三条设计原则 9410.3 插图 9410.4 文本 9610.5 合适的媒介 9810.6 原理 10010.7 习题 10110.8 深入阅读 10110.9 次要问题目录(边栏) 101第11 章 图形化输出 10311.1 实例研究 10311.2 显示结果取样 10511.3 原理 10711.4 习题 10811.5 深入阅读 11011.6 拿破仑远征莫斯科(边栏) 110第12 章 对调查的研究11312.1 有关民意调查的问题11312.2 语言 11412.3 图片 11712.4 原理 11912.5 习题 120第四部分 算 法第13 章 绝妙的取样 12313.1 取样算法一瞥 12313.2 Floyd 算法 12413.3 随机排列 12513.4 原理 12713.5 习题 12713.6 深入阅读 128第14 章 编写数值计算程序12914.1 问题 12914.2 牛顿迭代 13014.3 良好的起点 13214.4 代码 13314.5 原理 13514.6 习题 13514.7 深入阅读 13714.8 数值算法的力量(边栏) 137第15 章 选择 14115.1 问题 14115.2 程序 14215.3 运行时间分析 14515.4 原理 14815.5 习题 14915.6 深入阅读 151附录A C 和Awk 语言 153附录B 子程序库 157部分习题答案 165索引 181
评论关闭。