编辑推荐
史上具影响力的计算机科学著作之一
融深邃思想、实战技术与趣味轶事于一炉的奇书
带你真正领略计算机科学之美
多年以来,当程序员们推选出心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上受欢迎的专栏,结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第二卷,秉承了一卷的风格,但本书涉及的范围更广,包括文档、小语言、性能监视、图形输出等。
在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。
内容简介
本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。本书延续了《编程珠玑》的特色,通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行透彻而睿智的描述,为复杂的编程问题提供清晰而完备的解决思路。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容结合成一个有机的整体,如一串串珠玑展示给程序员。本书对各个层次的程序员都具有很高的阅读价值。
作者简介
Jon Bentley 计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976—1982)、贝尔实验室(1982—2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles E.Leiserson在内的许多计算机科学大家。2004年荣获Dr. Dobb's程序设计卓越奖。
目录
Part I: PROGRAMMING TECHNIQUES 1
第一部分 编程技术
Column 1: Profilers 3
第1章 性能监视工具
Computing Primes / 计算素数
Using Profilers / 使用性能监视工具
A Specialized Profiler / 专用的性能监视工具
Building Profilers / 开发性能监视工具
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 2: Associative Arrays 15
第2章 关联数组
Associative Arrays in Awk / Awk中的关联数组
A Finite State Machine Simulator / 有穷状态机模拟器
Topological Sorting / 拓扑排序
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 3: Confessions of a Coder 27
第3章 程序员的忏悔
Binary Search / 二分搜索
Selection / 选择算法
A Subroutine Library / 子程序库
Principles / 原理
Problems / 习题
Column 4: Self-Describing Data 37
第4章 自描述数据
Name-Value Pairs / 名字—值对
Provenances in Programming / 记录来历
A Sorting Lab / 排序实验
Principles / 原理
Problems / 习题
Part II: TRICKS OF THE TRADE 45
第二部分 实用技巧
Column 5: Cutting the Gordian Knot 47
第5章 劈开戈尔迪之结
A Quiz / 小测验
Some Solutions / 解答
Hints / 提示
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Debugging / 调试(边栏)
Column 6: Bumper-Sticker Computer Science 57
第6章 计算机科学箴言集
Coding / 编码
User Interfaces / 用户界面
Debugging / 调试
Performance / 性能
Documentation / 文档
Managing Software / 软件管理
Miscellaneous Rules / 其他
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 7: The Envelope is Back 69
第7章 粗略估算
A Warm-Up for Cool Brains / 头脑热身
Performance Rules of Thumb / 性能的经验法则
Little’s Law / Little定律
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Quick Calculations in Everyday Life / 日常速算(边栏)
Column 8: The Furbelow Memorandum 77
第8章 人员备忘录
The Memo / 备忘录
Principles / 原理
Further Reading / 深入阅读
Part III: I/O FIT FOR HUMANS 81
第三部分 人性化I/O
Column 9: Little Languages 83
第9章 小语言
The Pic Language / Pic语言
Perspective / 视角
Pic Preprocessors / Pic预处理器
Little Languages for Implementing Pic / 用来实现Pic的小语言
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 10: Document Design 101
第10章 文档设计
Tables / 表格
Three Design Principles / 三条设计原则
Figures / 插图
Text / 文本
The Right Medium / 合适的媒介
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
A Catalog of Pet Peeves / 次要问题目录(边栏)
Column 11: Graphic Output 115
第11章 图形化输出
A Case Study / 实例研究
A Sampler of Displays / 显示结果取样
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Napoleon’s March to Moscow / 拿破仑远征莫斯科(边栏)
Column 12: A Survey of Surveys 127
第12章 对调查的研究
The Problems of Polling / 有关民意调查的问题
The Languages / 语言
The Pictures / 图片
Principles / 原理
Problems / 习题
Part IV: ALGORITHMS 137
第四部分 算法
Column 13: A Sample of Brilliance 139
第13章 绝妙的取样
A Sampling of Sampling Algorithms / 取样算法一瞥
Floyd’s Algorithm / Floyd算法
Random Permutations / 随机排列
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 14: Birth of a Cruncher 147
第14章 / 编写数值计算程序
The Problem / 问题
Newton Iteration / 牛顿迭代
A Great Place to Start / 良好的起点
The Code / 代码
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
A Big Success Story / 数值算法的力量(边栏)
Column 15: Selection 159
第15章 选择
The Problem / 问题
The Program / 程序
Analysis of Run Time / 运行时间分析
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Appendix 1: The C and Awk Languages 171
附录A C和Awk语言
Appendix 2: A Subroutine Library 175
附录B 子程序库
Solutions to Selected Problems 183
部分习题答案
前言/序言
编程珠玑 续 英文版 下载 mobi epub pdf txt 电子书 格式