编程珠玑(第2版•修订版)

[美] Jon Bentley 乔恩•本特利

出版时间

2014-12-01

ISBN

9787115357618

评分

★★★★★

标签

编程

书籍介绍

历史上最伟大的计算机科学著作之一

融深邃思想、实战技术与趣味轶事于一炉的奇书

带你真正领略计算机科学之美

多年以来,当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上最受欢迎的专栏,最终结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为第一卷,主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。

在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣,而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。

书评

“《编程珠玑》是对我职业生涯早期影响最大的书之一,其中的许多真知灼见多年之后仍然使我受益匪浅。”

——Steve McConnell,软件工程大师,IEEE Software前主编,《代码大全》作者

AI导读
核心看点
  • 通过经典案例传授算法选择与高效实现的核心原则
  • 引导读者像资深工程师一样创新性地思考与解决问题
  • 融合深邃思想、实战技术与趣味轶事,领略CS之美
适合谁读
  • 具备一定数据结构与算法基础的程序员
  • 希望提升代码质量与设计思维的软件工程师
  • 对计算机科学本质问题感兴趣的从业者
读前提醒
  • 建议结合C/C++代码实践,不要仅停留在理论阅读
  • 重视每章后的习题,它们是深化理解的关键环节
  • 若中文翻译晦涩,建议对照英文原版辅助阅读
读者共识
  • 经典之作,虽薄但精,值得反复研读与把玩
  • 翻译质量一般,有条件者强烈建议阅读英文原版
  • 非算法入门书,需有基础方能体会其大道至简

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "位图或位向量表示集合"
  • "习题2:如何使用位逻辑运算来实现位向量?"
  • "他们估计那些经过极度调优的代码(具有谨慎的寄存器分配和指令选择)的规模只有从高级语言编译过来的等价代码的一半(尽管那时编译器已经有了很大的改进)。紧凑的汇编代码运行起来也非常快。"
  • "我错就错在马上回答了这个问题。"
  • "程序员的主要问题与其说是技术问题,还不如说是心理问题:他不能解决问题,是因为他企图解决错误的问题。问题的最终解决,是通过打破他的概念壁垒。"
  • "Rework repeated code into arrays. A long stretch of similar code is often best expressed by the simplest of data structures,the array. Encapsulate complex structures. When you need a sophisticated data structure,define it in abstract terms,and express those operations as a class. Use advanced tools "
  • "from[i]<top并且to[from[i]]=i"
  • "第九题:顺序搜索和二分搜索代表了搜索时间和预处理时间的折中。处理一个n元表格时,需要执行多少次二分搜索才能弥补排序带来的消耗?"
作者简介
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

显示全部
用户评论
学了四年计算机,已经不是新手,这本书固然经典,但学到的不是特别多。我觉得比较适合新手阅读。
一般般,首先是翻译得很别扭,建议读原版。其次,可能是因为我没有项目经验,考虑重读…想认真学算法or算法入门的话是不推荐这本书的。
书是好书,读起来太费劲
读起来很容易,但是内容也很有深度,值得反复看
大概2016年读完的,但是不敢说自己当时都看懂了。现在还能记得一开始的“bitmap”、翻转字符串以及后面验证程序正确性的“循环不变式”
从一个个小问题出发还是比较好理解,把小程序一步步精进,从不同方面进行优化,很有意思,还是有些内容不好理解。
很久以前读的书,最近又翻了一遍,写得挺好的,把技术和应用场景结合在一起,适合入门
这不仅仅是一本关于算法的书,更多的是在讲述如何去写一个正确的软件。同时,它对于程序员思维的培养也有很大的帮助
绝世武功秘籍目录
从问题剖析到性能优化再到具体应用,结合书里的精彩的练习题能学到很多。但某些讨论似乎有一点点过时(毕竟多年前出版的书),应用部分和数据结构有很大重合。精华部分仍是形而上的方法论,以建立基础的问题分析到程序编写思维。
下载
收藏