编程珠玑(第2版) 封面

编程珠玑(第2版)

评分 4.5
字数
35.4万字
章节数
28
丛书
图灵程序设计丛书
ISBN
9787115179289

标签

内容简介

《编程珠玑(第2版)》是计算机科学领域的经典名著,源自作者乔恩·本特利(Jon Bentley)在《ACM通讯》上广受欢迎的“Programming Pearls”专栏,结集后成为影响几代程序员的作品。全书并不按教材体例系统罗列算法,而是围绕程序员在真实开发中会遭遇的具体问题展开:如何给一个约千万条记录的磁盘文件排序、如何从海量数据中抽样、如何设计一个既省空间又快速的搜索结构、如何调优一段慢得无法接受的代码。 全书分为“基础”“性能”“应用”三部分,共15章。基础部分以开篇的磁盘排序问题引入问题定义、程序设计与实现概要的完整流程,接着讨论二分搜索、数据驱动程序结构、正确性验证与测试工具等主题;性能部分讨论性能分析、粗略估算(含Little定律)、算法设计技术(分治、扫描等)、代码调优与空间压缩;应用部分则分章处理排序、取样、搜索、堆与字符串处理等经典问题。每章末尾附有习题与延伸阅读,书后还给出部分习题提示与答案,以及算法分类、估算测试、时空开销模型、代码调优法则等附录。 作者的写法强调“想清楚再写”,用案例和轶事引导读者理解问题本质,而不是背诵代码。书中示例多用C/C++语言实现,兼顾实战示范意义,对希望从“能写出程序”迈向“写得出好程序”的读者尤其有价值。

编辑推荐

一本薄薄两百多页的书,却被无数程序员列进“最心爱的计算机图书”名单,靠的不是覆盖面,而是密度。本特利把在贝尔实验室和课堂里打磨多年的问题搬到纸面上:从“给一千万条记录排序”这个看似平淡的开头,一路讲到二分搜索的边界陷阱、数据如何决定程序结构、估算的数量级直觉、代码调优的分寸,以及排序、取样、搜索、堆、字符串这些经久不衰的经典题目。 它的可贵之处在于教“怎么想”,而不是“怎么写”。每一章先给出一个具体而棘手的场景,再和读者一起试错、走弯路、修正,最后提炼出可迁移的原则;章末的习题与深入阅读更像一份份小课题,逼着人合上书自己动手。黄倩、钱丽艳的译笔简洁准确,术语处理稳妥,刘田审校也保证了技术细节的可靠性。 如果你只把这本书当小说翻一遍,会觉得“不过如此”;但只要肯在每道题上停一停,就会明白“珠玑”二字的分量。薄,是因为删得狠;精,是因为想得透。

适合谁读

适合

  • 已经会用一门语言写程序、希望提升设计与分析能力的开发者
  • 准备算法面试或参加竞赛,需要培养问题拆解直觉的读者
  • 计算机专业学生,作为数据结构与算法课程之外的补充读物
  • 从事性能优化、嵌入式或底层开发,关注空间与时间权衡的工程师

不适合

  • 零编程基础、尚未掌握任一编程语言的入门读者
  • 只想找一份可直接复制的完整代码或框架手册的人
  • 期待系统教材式知识清单、按考点逐条背诵的读者

阅读建议

  1. 每读一章先合上书自己想方案,再对照作者的推导,最后才看习题答案。
  2. 习题质量高于正文,建议至少精做“基础”与“性能”两部分的核心题目。
  3. 配合一本算法教材(如《算法导论》)对照阅读,把书中的直觉落成严谨分析。
  4. 读完后挑选书中一个案例,用自己熟悉的语言重写并做性能实测,检验理解。

出版社简介

人民邮电出版社 中国 · 成立于 1953 年

人民邮电出版社以科技、计算机与信息通信类图书见长,并由此延伸至摄影、艺术、软件学习与励志成长等门类,形成较为多元的出版方向。库内图书既涵盖《重构与模式(修订版)》《华为交换机学习指南(第二版)》等计算机与通信技术读物,也收录《小王子(中英法彩绘典藏纪念版)》《了不起的盖茨比》《假如给我三天光明》等双语典藏类作品;《北京十年:1980-1990》与《鬼刀 WLOP个人插画作品集》则体现其在摄影与艺术领域的布局。作者资源包括安东尼·圣埃克苏佩里、海伦·凯勒、Joshua Kerievsky、王达、张兆增与WLOP等。

目录

  1. 前言
  2. 第一部分 基础
  3. 第1章 开篇
  4. 第2章 啊哈!算法
  5. 第3章 数据决定程序结构
  6. 第4章 编写正确的程序
  7. 第5章 编程小事
  8. 第二部分 性能
  9. 第6章 程序性能分析
  10. 第7章 粗略估算
  11. 第8章 算法设计技术
  12. 第9章 代码调优
  13. 第10章 节省空间
  14. 第三部分 应用
  15. 第11章 排序
  16. 第12章 取样问题
  17. 第13章 搜索
  18. 第14章 堆
  19. 第15章 字符串
  20. 第1版跋
  21. 第2版跋
  22. 附录A 算法分类
  23. 附录B 估算测试
  24. 附录C 时空开销模型
  25. 附录D 代码调优法则
  26. 附录E 用于搜索的C++类
  27. 部分习题提示
  28. 部分习题答案

常见问题

这本书和《编程珠玑(续)》是什么关系?
《编程珠玑》与《编程珠玑(续)》是姊妹篇,都源自本特利的专栏文章。本书侧重算法选择与性能问题,《续》则更多涉及取样、数值算法、关联数组、性能监控与估算等实用技巧,两者可以分开读。
没有C或C++基础能读吗?
可以读懂大部分思想,但书中代码示例多用C/C++,涉及指针、数组与内存布局的片段会读得吃力。若完全不懂C系语言,建议先补一点基础语法,或跳过代码细节专看推导过程。
这本书适合准备算法面试吗?
有帮助但不对口。它培养的是分析问题、估算复杂度、优化实现的能力,而不是题型模板。面试刷题还需另配题解类书籍,本书更适合作为底层的思维训练。
第2版和第2版·修订版有什么区别?
第2版由人民邮电出版社2008年出版(ISBN 9787115179289),是流传最广的版本;第2版·修订版在此基础上有修订与补充,页数与定价不同,选购时可按ISBN区分,内容主体一致。
读完大概需要多久?
泛读一两周即可通览,但认真做题、逐章推演通常需要两三个月甚至更久。书不厚,难点在思考而非阅读速度,建议按章节留出足够消化时间。

读者评论

查询本书

本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。

同一作者

同类高分