编程珠玑(第2版·英文版)

[美] Jon Bentley

出版时间

2015-12-01

ISBN

9787115401267

评分

★★★★★

标签

计算机

书籍介绍
《编程珠玑》不是一本教你背诵算法模板的书,而是一套训练思维方式的方法论。它从「如何高效地在一台老式机器上统计最多八位电话号码的出现次数」这样看似简单的问题切入,层层逼问:你以为的难点,往往只是因为你没有看清数据的本质。全书短章精悍,平均两小时可读完一篇,却常让人反复琢磨数日。读者反复提及的,是书中那句直击要害的判断——程序员真正的障碍通常不是技术,而是解决了一个错误的问题。它教会你在写代码之前,先想清楚输入、输出与中间数据结构。它不追求大而全的算法体系,而是用位图、向量、数组等最朴素的工具,演示「让数据结构来组织程序」的力量。适合那些不满足于「能跑就行」、愿意为效率与清晰反复较真的程序员。
作者简介
Jon Bentley,计算机科学家,被誉为影响算法发展的十位大师之一。他先后任职于卡内基-梅隆大学(1976—1982)、贝尔实验室(1982—2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学担任教授期间,他培养了包括Tcl语言设计者John Ousterhout、Java语言设计者James Gosling、《算法导论》作者之一Charles E. Leiserson在内的许多计算机科学大家。2004年荣获Dr. Dobb's程序设计卓越奖。
AI导读
核心看点
  • 经典名著,通过实际问题引导读者掌握程序设计技巧与基本设计原则。
  • 章节短小紧凑,聚焦特定思想与细节,提供清晰完备的复杂问题解决思路。
  • 强调心理与思维训练,指出程序员主要问题在于解决错误的问题而非技术。
读者共识
  • 薄而精悍,无愧珠玑之名,虽无高深算法,但蕴含极丰富的设计思想。
  • 改变人生轨迹的经典之作,每道习题都极具启发性,值得反复研读。
  • 阅读门槛较高,需耐心克服思维障碍,读懂后功力将显著提升。
精彩摘录
  • "位图或位向量表示集合"
  • "习题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元表格时,需要执行多少次二分搜索才能弥补排序带来的消耗?"
目录
Part Ⅰ: PRELIMINARIES
第一部分 基础
Column 1: Cracking the Oyster
第1章 开篇
A Friendly Conversation / 一次友好的对话

显示全部
用户评论
Part I only
很多建议至今仍然很实用,但代码都是C语言的,不了解指针的估计很难读懂
章节短小紧凑,平均花两个多小时,不是按算法书那样按结构或问题分章,而是按了某个思想和细节,也没有某些经典的复杂算法,题目很好,很有启发性。书很薄,倒是要想很久。就是我的英语不太行,涉及到数学的也不大擅长。
一本小书,陆陆续续用了七八年时间才读完……
读了第一篇很不错。
求书
收藏