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

出版时间:2010-8  出版社:人民邮电出版社  作者:[美] Jon Bentley  页数:239  
Tag标签:无  

前言

计算机编程有很多方面。Fred Brooks在《人月神话》一书中为我们描绘了全景,他的文章强调了管理在大型软件项目中所起的关键作用。而Steve McConnell在《代码大全》一书中更具体地传授了良好的编程风格。这两本书所讨论的是好软件的关键因素和专业程序员应有的特征。遗憾的是,仅仅熟练地运用这些可靠的工程原理,不见得一定能够如期完成软件并顺利运行。关于本书本书描述了计算机编程更具魅力的一面:在可靠的工程之外,在洞察力和创造力范围内结晶而出的编程珠玑。正如自然界中的珍珠来自干磨砺牡蛎的细沙一样,这些编程珠玑来自于磨砺程序员的实际问题。书中的程序都很有趣,传授了重要的编程技巧和基本的设计原理。本书大部分内容最初发表在《ACM通讯》中我主持的“编程珠玑”专栏。这些内容经过汇总和修订,在1986年结集出版,成为了本书的第1版。第1版的13篇文章中,有12篇都在本版中做了大幅修订;此外,本版还补充了3篇新的内容。阅读本书只需要读者具有某种高级语言的编程经验。书中偶尔会出现一些高级技术(如C++中的模板等),对此不熟悉的读者可以跳过这些内容,基本上不影响阅读。本书每一章都独立成篇,各章之间却又有着逻辑分组。第1章至第5章构成本书的第一部分,这部分回顾了编程的基本原理:问题定义、算法、数据结构以及程序验证和测试。第二部分围绕效率这个主题展开。效率问题有时本身就很重要,又永远都是进入有趣编程问题的绝佳跳板。第三部分用这些技术来解决排序、搜索和字符串等重要问题。阅读本书的一个提示:不要读得太快。要仔细阅读,一次读一章。要尝试解答书中提出的问题——有些问题需要集中精力思考一两个小时才会想清楚。然后,要努力解答每章末尾的习题:当读者写下答案时,从本书学到的大部分知识就会跃然纸上。

内容概要

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

作者简介

作者:(美国)本特利(Jon Bentley)本特利,Jon Bentley,1953年2月20日出生于美国加州长滩。1974年毕业于斯坦福大学数学系,1976年获北卡罗来纳大学博士学位。他先后任职于卡内基-梅隆大学(1976-1982)、贝尔实验室(1982-2001)和Avaya实验室(2001年至今)。在卡内基-梅隆大学任教期间。他培养了许多后来知名的计算机大家。包括Scribe的开发者Brian Reid,Tcl语言设计者John Ousterhout,Java专家Joshua Bloch,Java语言设计者James Gosling,《算法导论》作者之——Charles Leiserson。2004年荣获Dr. Dobb’s程序设计卓越奖。

书籍目录

Part I: PRELIMINARIES Column 1: Cracking the Oyster    A Friendly Conversation·Precise Problem Statement·Program Design·Implementation Sketch·Principles·Problems·Further ReadingColumn 2: Aha! Algorithms    Three Problems·Ubiquitous Binary Search·The Power of Primitives·Getting It Together: Sorting·Principles·Problems·Further Reading·Implementing an Anagram ProgramColumn 3: Data Structures Programs    A Survey Program·Form-Letter Programming·An Array of Examples·Structuring Data·Powerful Tools for Specialized Data·Principles·Problems·Further ReadingColumn 4: Writing Correct Programs    The Challenge of Binary Search·Writing the Program·Understanding the Program·Principles·The Roles of Program Verification·Problems·Further ReadingColumn 5: A Small Matter of Programming    From Pseudocode to C·A Test Harness·The Art of Assertion·Automated Testing·Timing·The Complete Program·Principles·Problems·Further Reading·DebuggingPart II: PERFORMANCE Column 6: Perspective on Performance    A Case Study·Design Levels·Principles·Problems·Further ReadingColumn 7: The Back of the Envelope    Basic Skills·Performance Estimates·Safety Factors·Little's Law·Principles·Problems·Further Reading·Quick Calculations in Everyday LifeColumn 8: Algorithm Design Techniques    The Problem and a Simple Algorithm·Two Quadratic Algorithms·A Divide-and-Conquer Algorithm·A Scanning Algorithm·What Does It Matter?·Principles·Problems·Further ReadingColumn 9: Code Tuning 7   A Typical Story·A First Aid Sampler·Major Surgery——Binary Search·Principles·Problems·Further ReadingColumn 10: Squeezing Space    The KeySimplicity·An Illustrative Problem·Techniques for Data Space·Techniques for Code Space·Principles·Problems·Further Reading·A Big SqueezePart III: THE PRODUCT Column 11: Sorting  115   Insertion Sort·A Simple Quicksort·Better Quicksorts·Principles·Problems·Further ReadingColumn 12: A Sample Problem    The Problem·One Solution·The Design Space·Principles·Problems·Further ReadingColumn 13: Searching    The Interface·Linear Structures·Binary Search Trees·Structures for Integers·Principles·Problems·Further Reading·A Real Searching ProblemColumn 14: Heaps    The Data Structure·Two Critical Functions·Priority Queues·A Sorting Algorithm·Principles·Problems·Further ReadingColumn 15: Strings of Pearls    Words·Phrases·Generating Text·Principles·Problems·Further ReadingEpilog to the First Edition Epilog to the Second Edition Appendix 1: A Catalog of Algorithms Appendix 2: An Estimation Quiz Appendix 3: Cost Models for Time and Space Appendix 4: Rules for Code Tuning Appendix 5: C++ Classes for Searching Hints for Selected Problems Solutions to Selected Problems Index 

章节摘录

插图:Algorithm Tuning. The simple algorithm always uses small time steps to handle the rare case that two particles come close to one another. The tree data structure allows such pairs to be recognized and handled by a special function. That doubles the time step size and thereby halves the run time of the program.Data Structure Reorganization. The tree that represents the initial set of objects is quite poor at representing later sets. Reconfiguring the data structure at each time step costs a little time, but reduces the number of local calculations and thereby halves the total run time.Code Tuning. Due to additional numerical accuracy provided by the tree, 64-bitdouble-precision floating point numbers could be replaced by 32-bit single-precision numbers; that change halved the run time. Profiling the program showed that 98 percent of the run time was spent in one function; rewriting that code in assembly language increased its speed by a factor of 2.5.Hard ware. After all the above changes, the program still required two days of time on a departmental machine that cost a quarter of a million dollars, and several runs of the program were desired. Appel therefore moved the program to a slightly more expensive machine equipped with a floating point accelerator, which halved its run time again.

媒体关注与评论

“《编程珠玑》第1版是对我职业生涯早期影响最大的一本书。其中的许多真知灼见多年之后仍然使我受益匪浅。Jon在第2版中对素材进行了大量更新。许多新内容让我耳目一新。”  ——Steve McConnell,《代码大全》作者“对每一位遇到的程序员,我都会毫不迟疑地建议他阅读并不断重读这部经典之作。”  ——Slashdot

编辑推荐

多年以来。当程序员们推选出最心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺.计算机科学大师Jon Bentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”。这些文章是《ACM通讯》最受欢迎的专栏文章,最终结集为两部书出版。《编程珠玑(英文版·第2版)》为第一卷。主要讨论计算机科学中最本质的问题:如何正确选择和高效地实现算法。在书中,作者选取许多具有典型意义的复杂编程和算法问题。生动描绘了历史上众多大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程。引导读者开展创新性的思考。书中透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。解决方案的代码均以C/C++语言编写,不仅有趣。而且有很大的实战示范意义。每章后所附习题极具挑战性和启发性,书末给出了简洁的解答。

图书封面

图书标签Tags

评论、评分、阅读与下载


    编程珠玑(英文版・第2版) PDF格式下载


用户评论 (总计129条)

 
 

  •   因为看了评论所以选择了英文版的,收到感觉挺好的,印刷挺清晰,纸张也不错,质感挺好。这本书比较偏重编程中遇到的问题,对于编程的人来说的确是一本必读的经典。
  •   编程珠玑的英文版绝对物超所值!耶
  •   比较有意思的一本书,带给人很多关于编程方面的思考,阅读容易但是要彻底理解还是有难度
  •   这本书不适合快速读,刚到手第一天看了前2章,但感觉看的太快,仅仅是开阔了眼界,发现程序原来可以这么写,仅此而已。读这本书要慢速读多思考,对书中的问题最好能想想如果是自己,会如何用代码实现,才有所收获。否则,跟看小说似的,读过了也没多大用。
  •   一本很经典的编程方面的书,很值得购买,静下心来好好读一读很有收获
  •   很好的书,英文原版读起来才有味道。每读完一章都豁然开朗的感觉,对自己将来的编程思路会有巨大的拓展。
  •   经典的编程书!
  •   继c陷阱与缺陷.. c专家编程后又进的书...阅读ing...
  •   此书编程经典必读书籍!无论是入门还是进阶都会受益匪浅!
  •   编程经典
  •   图灵奖得主写的编程书,可惜中文版翻译的太烂了。
  •   程序员必读书的前十名。英文也不难,我是一天一章的速度慢慢看的。经典之作。
  •   没什么好多说的,这是每个程序员要看的书
  •   慢慢看,英语原版,即学编程又学英语
  •   编程必看。
  •   纸质不是很好,看的有点不爽。英文不是很好,看的有点问题,不过还是看英文版的理解的更好。
  •   大师John Bentley的杰作,值得仔细阅读
  •   学到的思想很重要,看待问题,和解决问题
  •   非常实际又有趣的一本书
  •   不朽经典,原味呈现。看大家对本书的评价,毅然选择了英文版。目前只是草草读了开篇(还在上班中··T_T),不过还是推荐之。
  •   送货速度不错,这本书是经典之作,专门买了英文版的,嘻嘻
  •   听说很经典的书,看评价说中文版翻译很差劲,所以选择了英文版的,读起来可能吃力一点
  •   很经典的入门算法书,适合学计算机的读者们看看。
  •   作为算法的入门书籍,有很强的吸引性。书中的例子和问题能够进一步引发思考。
  •   英文版的,看着确实有点费劲~~~建议英语不好的还是买翻译版的~
  •   买个英文原版,虽然会费劲些,不过更原汁原味。书的质量没什么问题
  •   刚收到书,因为看到评论都说 中文版的翻译不好,所以买了本英文版的。慢慢看吧。书包装和质量都很好
  •   书还没到的说,这本书是经典之作,很期待书的到来!
  •   英文版还是有点难度的
  •   英文版的原味,正在品读!
  •   中文版据说翻译的很差,所以买了英文版。不过对我来说,看英文比较费时间~~如果购买建议买英文版。
  •   普遍反映中文译本翻译不好,就果断买了英文版
  •   这本主要讲算法,千万不要买中文版,买英文版就对了
  •   书内容就不说了。。看着很开心的。。买中文版的没有必要 看英文的吧 不是很困难的 相信我 而且中文版的网上到处都是 可以下 看英文不懂的地方再看中文的。。很推荐这本书
  •   一本被众多人广为推荐的经典书籍,刚刚拿到手,期待中……
    物流挺快的,就是书还是有点刺鼻的味道。
  •   这本书很经典,之前看了翻译的,质量不怎样,英文原版不错
  •   很好的书,很经典,通俗易懂!!
  •   英文书,刚买下时,翻了几页,现在都不想看了,英文看起来还是很头痛的,不过书写的确实非常好!国外的经典书籍的,推荐的大家!不过一定要耐心、用心、恒心,才会成功!
  •   经典就是经典,书很不错
  •   经典的书还是看原版
  •   内容绝对经典。叙述直白,代码详实。适合学算法的看。
  •   算法导论外的另一本值得研究的书,阅读越有滋味,需要好好的研读。非常好的算法书、
  •   这本书期待已久,终于可以一睹精彩的内容
  •   看到网上的评价很高,所以买的,学的英文原版的
  •   经典之作,和中文版一起看吧还是~~哈哈
  •   经典就是经典啊,字字珠玑。不过,确实很高深!
  •   看了之后,觉得很多都是经典。
  •   这本书是可以随着你成长的好书。
  •   强烈推荐读这本书
  •   主要是在看方法而不是代码细节。
  •   纸质泛黄,有一种老书的感觉。。但行文流畅,值得一读。。
  •   书还没看。包装很好。
  •   比翻译的好多了,还是要看原版的书呀。
  •   希望多印刷点老书~
  •   英文的,原汁原味。
    这是一本计科童鞋必读之书~!
  •   书不错,但是后悔买英文的了,看起来很吃力
  •   现在没有太多时间看书,所以对书比较挑
    看到第二章了,是本好书,在坚持写读书笔记
  •   书很好,现在字啊看,如果送来的时候能多些保护就好了
  •   很好的书,原版很不错
  •   很不错的书,发书也挺快的
  •   纸质没有想象的好,内容还不错
  •   到手就在看了,当锻炼自己了,内容还是不错的
  •   纸质不好,其他都不错!内容很好!
  •   用来学英语的,写得很不错。
  •   感觉还行,纸质不是特别好
  •   不错,比中文版好多了。
  •   能买到原版很好!
  •   明年就要毕业了,Programming Pearls,Cracking the Coding Interview等都是必备的参考书。
  •   质感不错!
  •   怕看不懂
  •   凭着大家的口碑买下,质量不错,还是塑封来的呢.
  •   质量很好,纸张挺厚的
  •   看了电子书,感觉不错! 卖本纸质的研读一下
  •   帮bf买的,应该还不错吧
  •   哈哈,不错,无可挑剔。
  •   不错,很喜欢,寒假在家慢慢读。。。
  •   原版十分不错,需花时间细读
  •   还是英文原版好一点
  •   大家之作,无可挑剔
  •   印刷得不好,不应该这样子的,不过是可以接收
  •   还不错, 不过全英文,得耐心看看
  •   中文的翻译的不太好,建议买英文的
  •   很大启发~~~~
  •   字字珠玑,一本值得一读的好书~
  •   质量价格都很好
  •   一本不折不扣的算法类书籍,但是不是简单阐述理论或者算法,虽然我到目前只读了一章,但是我发现他把算法思路和实际问题结合的很不错,后面还需要自己慢慢的体会。
    当然,看英语原版还是有点难,尤其是第一次看英文类的书籍,读起来有点吃力,建议读者可以找一本中文版的编程珠玑参照着看(电子书)
  •   经典作品,英文版的不错
  •   英文版阅读起来还是比较吃力
  •   书是英文的,看的有点别扭,不过这不是书的问题,书还是不错的,嘿嘿
  •   不错,英文版的很好,只是纸有点成年老旧,总体还是好。
  •   久闻大名,本想买中文版的,但是网上评价不太好,所以就先入手英文版的吧
  •   如果你的时间比较宽裕,而且喜欢挑战自己的话,建议买英文版。
  •   书很好,后来买了个中文版的对着看觉得还是英文的地道!
  •   本来以为我英语水平应该能看懂的,结果发现我还是要再补补计算机英语啊!!!
  •   书的印刷、纸张都很好,书角破损了,不过重要是内容,满意
  •   写得很不错的一本书,看完了受益匪浅
  •   还没开始看,包装挺精致,书的纸质蛮好
  •   讲了很多“小东西”,能干活的人很多,懂东西的人少,有时间还是要看看书,想想东西,人的区别就在这些小地方。
  •   好的书给予初学者的不仅是知识,更是一种思维的初始化。尤其是对于全英的书,我想接下来学习的时间会是美好的,难忘的。
  •   书买回来好久了,还没翻过,全英文。
    这将是一个痛苦的过程。
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7