具体描述
本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。本书延续了《编程珠玑》的特色,通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行透彻而睿智的描述,为复杂的编程问题提供清晰而完备的解决思路。书中涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容结合成一个有机的整体,如一串串珠玑展示给程序员。本书对各个层次的程序员都具有很高的阅读价值。
作者简介
Jon Bentley 计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976—1982)、贝尔实验室(1982—2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles E.Leiserson在内的许多计算机科学大家。2004年荣获Dr. Dobb's程序设计卓越奖。
目录信息
第一部分 编程技术
Column 1: Profilers3
第1章 性能监视工具
Computing Primes / 计算素数
Using Profilers / 使用性能监视工具
A Specialized Profiler / 专用的性能监视工具
Building Profilers / 开发性能监视工具
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 2: Associative Arrays15
第2章 关联数组
Associative Arrays in Awk / Awk中的关联数组
A Finite State Machine Simulator / 有穷状态机模拟器
Topological Sorting / 拓扑排序
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 3: Confessions of a Coder27
第3章 程序员的忏悔
Binary Search / 二分搜索
Selection / 选择算法
A Subroutine Library / 子程序库
Principles / 原理
Problems / 习题
Column 4: Self—Describing Data37
第4章 自描述数据
Name—Value Pairs / 名字—值对
Provenances in Programming / 记录来历
A Sorting Lab / 排序实验
Principles / 原理
Problems / 习题
Part Ⅱ: TRICKS OF THE TRADE45
第二部分 实用技巧
Column 5: Cutting the Gordian Knot47
第5章 劈开戈尔迪之结
A Quiz / 小测验
Some Solutions / 解答
Hints / 提示
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Debugging / 调试(边栏)
Column 6: Bumper—Sticker Computer Science57
第6章 计算机科学箴言集
Coding / 编码
User Interfaces / 用户界面
Debugging / 调试
Performance / 性能
Documentation / 文档
Managing Software / 软件管理
Miscellaneous Rules / 其他
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 7: The Envelope is Back69
第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 Memorandum77
第8章 人员备忘录
The Memo / 备忘录
Principles / 原理
Further Reading / 深入阅读
Part Ⅲ: I/O FIT FOR HUMANS81
第三部分 人性化I/O
Column 9: Little Languages83
第9章 小语言
The Pic Language / Pic语言
Perspective / 视角
Pic Preprocessors / Pic预处理器
Little Languages for Implementing Pic / 用来实现Pic的小语言
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 10: Document Design101
第10章 文档设计
Tables / 表格
Three Design Principles / 三条设计原则
Figures / 插图
Text / 文本
The Right Medium / 合适的媒介
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
A Catalog of Pet Peeves / 次要问题目录(边栏)
Column 11: Graphic Output115
第11章 图形化输出
A Case Study / 实例研究
A Sampler of Displays / 显示结果取样
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Napoleon’s March to Moscow / 拿破仑远征莫斯科(边栏)
Column 12: A Survey of Surveys127
第12章 对调查的研究
The Problems of Polling / 有关民意调查的问题
The Languages / 语言
The Pictures / 图片
Principles / 原理
Problems / 习题
Part Ⅳ: ALGORITHMS137
第四部分 算法
Column 13: A Sample of Brilliance139
第13章 绝妙的取样
A Sampling of Sampling Algorithms / 取样算法一瞥
Floyd’s Algorithm / Floyd算法
Random Permutations / 随机排列
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Column 14: Birth of a Cruncher147
第14章 / 编写数值计算程序
The Problem / 问题
Newton Iteration / 牛顿迭代
A Great Place to Start / 良好的起点
The Code / 代码
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
A Big Success Story / 数值算法的力量(边栏)
Column 15: Selection159
第15章 选择
The Problem / 问题
The Program / 程序
Analysis of Run Time / 运行时间分析
Principles / 原理
Problems / 习题
Further Reading / 深入阅读
Appendix 1: The C and Awk Languages171
附录A C和Awk语言
Appendix 2: A Subroutine Library175
附录B 子程序库
Solutions to Selected Problems183
部分习题答案
· · · · · · (收起)
读后感
这本书非常好,篇幅不长,但对于思想的培育很有价值,而且给出的一些参考书都是经典。也是属于Bell Lab的光辉岁月的产物。缺点就是篇幅略短。 p7 用一定的时间把小问题思考清楚可以减少大量的时间。 p68 要懂得估算,并为各种规划设置足够的安全系数。 p81 dr.dobb's essent...
在(原书)出版后很长的时间中, 算法本身也随着很多行业领域的发展有了很大的变化. 举例来说, 游戏行业为了更快的渲染, 找出了求欧式距离的高速近似算法. 很多其它问题也有了现代且更加高速的解法(但适用条件可能有所不同). 基于这一点, 希望看到这个评论的同学注意一下, 比较现...
这本书非常好,篇幅不长,但对于思想的培育很有价值,而且给出的一些参考书都是经典。也是属于Bell Lab的光辉岁月的产物。缺点就是篇幅略短。 p7 用一定的时间把小问题思考清楚可以减少大量的时间。 p68 要懂得估算,并为各种规划设置足够的安全系数。 p81 dr.dobb's essent...
薄薄的一本书,丝毫无愧于珠玑两个字 能把书写薄写精的人都是无比厉害的人物,相信看过K&R的<C Progamming Language>的人都有类似的体会 只要看了第一章,我相信你会对这本书佩服得五体投地。一个简洁的小例子,几个看似简单的算法,实际上包含了很多算法设计的思想.看完第一...
如果不是因为翻译稍有一点点瑕疵,一定给评分顶级,所以如果可以读懂英文版,更加推荐了。 这是一本每一页都值得细细去读,每道章后习题都值得认真去思考的书。内容不多,页数不多,但都是很有启发性的东西。如果没有时间(或者胆量:P)去读Knuth的TAOCP,不妨先读一读Program...
用户评价
作为一名对计算机科学理论有着浓厚兴趣的大学生,我一直在寻找能够深化我对算法和数据结构理解的优质资源。市面上关于编程的书籍琳琅满目,但真正能够兼具深度与广度,并且能够激发读者思考的书籍却屈指可数。《编程珠玑・续》这个名字本身就自带光环,让我对它充满了好奇与期待。我听说“编程珠玑”系列是计算机科学领域中的经典之作,能够解决许多实际编程中的难题,并教会读者一种“思考”编程的方式。我希望这本续集能够延续这种风格,用生动有趣的例子,将那些抽象的算法概念具象化,让我能够更容易地理解其背后的原理和应用场景。我特别关注那些能够提升编程效率和代码质量的技巧,因为作为一名学生,我深知扎实的理论基础和高效的编程能力对于未来职业发展的重要性。我希望通过学习这本书,我能够掌握一些在课堂上学不到的“真功夫”,为我未来的学术研究和职业生涯打下坚实的基础。这本书的出现,对我而言,无疑是一次宝贵的学习机会,我已准备好投入全部精力,去探索它所蕴含的智慧。
在我刚开始接触编程的时候,“编程珠玑”系列就如同灯塔一般指引着我前进的方向。那时的我,对编程充满了热情,但又常常为遇到的各种“疑难杂症”而苦恼。直到我遇到了这本书,才真正领略到了编程的精妙之处。作者不仅仅是在教我如何写代码,更是在教我如何思考,如何用一种更“数学化”、更“逻辑化”的方式去解决问题。这次的“续集”让我倍感惊喜,我期待它能够带给我更多令人耳目一新的想法,帮助我突破思维的局限。我希望书中能够包含一些我从未接触过的算法思想,或者是一些对现有算法的独到见解。同时,我也希望能看到一些具体的代码示例,能够让我更好地理解和应用这些理论知识。在我看来,这本书不仅仅是一本技术书籍,更是一本能够提升我思维能力和解决问题能力的“武功秘籍”。我迫不及待地想要翻开它,开始我的新一轮学习之旅,相信它一定会让我受益匪浅,在编程的道路上走得更远、更稳。
拿到《编程珠玑・续》的那一刻,我脑海中浮现的是无数个通宵达旦、在代码的世界里遨游的夜晚。我本身不是科班出身,完全是靠着对计算机科学的热情一路摸索过来。在早期,我曾遇到过许多瓶颈,很多时候是因为对算法的理解不够深入,导致程序效率低下,甚至难以优化。当我第一次接触到“编程珠玑”系列时,那种醍醐灌顶的感觉至今难忘。它不像那些枯燥的教科书,而是像一位经验丰富的老友,娓娓道来,将那些看似高深的理论以一种巧妙且易于理解的方式呈现出来。这次的“续”更是让我欣喜若狂,我迫切地想知道,在经典的算法思想之外,作者又为我们带来了哪些新的启发和思考。我非常希望这本书能给我带来一些全新的视角,帮助我跳出固有的思维模式,看到解决问题的不同路径。尤其是在我目前负责的项目中,常常会面临性能上的挑战,我期待这本书中能够提供一些直接有效的解决方案,能够让我在实际工作中立刻感受到它的价值。我相信,通过这本书的学习,我能够更自信、更高效地应对各种技术难题,将我的编程能力提升到一个新的高度。
这本书的封面设计就充满了学术的严谨和一丝不苟的匠心,深邃的蓝色背景搭配简洁有力的白色字体,让人一眼就能感受到它所蕴含的深厚技术底蕴。在收到这本书的那一刻,我就迫不及待地翻开了它。虽然我是一名经验丰富的程序员,但“编程珠玑”系列一直是我眼中学习算法和数据结构的不二之选,尤其是知道有了续集,更是让我充满了期待。我的同事们,那些同样热爱技术、热衷于钻研代码的伙伴们,也早已摩拳擦掌,准备在技术的世界里再次探险。我个人对算法的理解一直停留在理论层面,总觉得缺少一些“实战”的触感,这本书的出现,恰好填补了我对编程艺术更深层次的渴望。我坚信,它不仅能帮助我巩固已有的知识,更能激发我对那些隐藏在代码背后的精妙之处的全新认识。我特别期待书中那些能够“点石成金”的技巧,那些能够将复杂问题化繁为简的神奇方法。这本书的到来,无疑为我的技术生涯注入了一剂强心剂,我已准备好沉浸其中,与作者一同探索编程的无限可能,让自己的编程技艺更上一层楼。
我是在一次技术交流会上偶然听说了《编程珠玑・续》的存在,当时就勾起了我极大的兴趣。我是一名软件架构师,日常工作中需要设计和维护复杂的系统,而算法的优化和高效的数据处理是我一直在追求的目标。我已经阅读过“编程珠玑”系列的前几部作品,它们对我的架构设计理念产生了深远的影响,教会了我如何用更简洁、更优雅的方式来解决问题。这次的续集,我希望能看到作者对于一些更前沿、更复杂的算法问题的深入探讨,以及它们在现代软件开发中的实际应用。我尤其关注那些能够帮助我提升系统整体性能、降低资源消耗的技巧和方法。同时,我也希望这本书能够提供一些新的思考角度,让我能够从更高的层面去理解算法在整个软件生命周期中的作用。在我看来,优秀的架构师不仅要懂设计模式,更要精通算法,因为它们是构建高效、可扩展系统的基石。这本书的到来,对我来说,就像是为我打开了一扇新的大门,让我能够在这个快速发展的技术领域不断进步。