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

[美] Jon Bentley 乔恩•本特利

出版时间

2014-12-01

ISBN

9787115357618

评分

★★★★★

标签

编程

书籍介绍
这本书最打动人的,不是它讲了多少算法,而是它展示了程序员如何像真正的问题解决者那样思考。作者从一次关于「如何给磁盘文件排序」的闲谈切入,层层逼出真实需求——这恰是日常开发中最容易被忽略的环节:我们常常解决错了问题,而非把问题解决得更漂亮。书里反复出现一个主题:让数据结构来决定程序结构,用位图、数组、抽象封装取代冗长重复的代码。它不追求高深理论,而是贴近一线实战,教人如何在明确目的与软硬件约束之后,选择最简洁有效的实现。适合学完数据结构后反复品读的人;有经验的开发者或许会觉得浅,但其中「打破概念壁垒」的思考方式,仍值得每位认真写代码的人反复咀嚼。
作者简介
Jon Bentley 世界著名计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976~1982)、贝尔实验室(1982~2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles Leiserson在内的许多计算机科学大家。2004年荣获Dr. Dobb's程序设计卓越奖。 译者简介 黄倩 工学博士,中国计算机学会高级会员,先后就读于南京大学、中国科学院计算技术研究所,先后工作于联发博动科技(北京)有限公司、河海大学计算机与信息学院。主要从事视频处理、机器学习方面的研究工作,获国家自然科学基金资助1项,发表论文十余篇。 钱丽艳 北京大学信息科学技术学院基础实验教学研究所软件实验室主任、高级工程师、毕业于国防科技大学,目前主要从事数值计算、程序设计方面的研究工作。 审校人简介 刘田 北京大学信息科学技术学院软件研究所副教授、中国电子学会电路与系统分会图论与系统优化专业委员会秘书长、中国计算机学会和中国电子学会高级会员,毕业于中国科学技术大学,目前主要从事算法分析和计算复杂度、量子信息处理等方面的研究工作,翻译出版了多部国外著名离散数学和计算机理论教材。
AI导读
核心看点
  • 通过经典案例传授算法选择与高效实现的核心原则
  • 引导读者像资深工程师一样创新性地思考与解决问题
  • 融合深邃思想、实战技术与趣味轶事,领略CS之美
读者共识
  • 经典之作,虽薄但精,值得反复研读与把玩
  • 翻译质量一般,有条件者强烈建议阅读英文原版
  • 非算法入门书,需有基础方能体会其大道至简
精彩摘录
  • "位图或位向量表示集合"
  • "习题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元表格时,需要执行多少次二分搜索才能弥补排序带来的消耗?"
目录
第一部分 基础
第1章 开篇 3
1.1 一次友好的对话 3
1.2 准确的问题描述 4
1.3 程序设计 4

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