第一图书网

算法技术手册

George T. Heineman,Gary Pollice,Stanley Selkow 机械工业出版社
出版时间:

2010-3  

出版社:

机械工业出版社  

作者:

George T. Heineman,Gary Pollice,Stanley Selkow  

页数:

333  

译者:

杨晨,李明  

Tag标签:

无  

前言

算法,神秘而晦涩的词汇。算法,是计算机科学中最重要同时也是最基础的一环。从开始学习计算机,我们就深知,算法是整个计算机科学的核心。然而直至我们工作数年后,能够真正学好算法的人,却依旧是风毛麟角。这并不是计算机教育的错,也不是计算机从业人员的错,更不是算法的错。长久以来,算法就像古老的咒语,算法背后高深的数学知识更让人望而生畏。其实,我们始终没有找到一条从理论走向实践的路。 在这里,我们很高兴能向大家介绍本书。它正是能够带领你学好算法的一本不可多得的好书。 本书的三位作者是伍斯特理工学院的教授,其中GeorgeT.Heineman毕业于达特茅斯学院和哥伦比亚大学,曾经获得过GE、IBM和AT&T的研究奖金,在软件工程方面有独到的研究。而Gary Pollice曾经供职于Rational Sonware,Sun等多家巨头,有着丰富的工业界经验,知道如何将学术和工业结合起来。Stanley M.Selkow毕业于卡内基梅隆大学和宾夕法尼亚大学,擅长图论和算法设计。本书由这三位伍斯特理工学院计算机理论专家合著,向我们展示了工业界和学术界对算法的不同看法以及如何高效地将理论和实践相结合。本书搭建了一条真正属于开发者的路。 本书的读者主要面向本科生以及程序设计人员,同样也适用于产品和项目管理人员。由于译者的知识和经验有限,翻译中难免有疏漏或错误,敬请广大读者谅解井批评指正。

内容概要

  开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法。《算法技术手册》讲解了许多现有的算法,可用于解决各种问题。通过阅读它,可以使您学会如何选择和实现正确的算法,来达成自己的目标。另外,书中的数学深浅适中,足够使您可以了解并分析算法的性能。  较之理论而言,本书更专注于应用。《算法技术手册》提供了高效的代码解决方案,使用多种语言进行编写,让您可以轻松地将其应用于特定的工程当中。通过本书,您可以:  ·解决特定代码的问题,或者提升既有解决方案的性能  ·快速找到与您所解决的问题相关的算法,并决定哪个算法才是最适合的那一个  ·探索使用C、C++、Java以及Ruby实现的算法解决方案以及开发小贴士  ·了解算法预期的性能,以及它达到最高性能时所需要的条件  ·发现不同算法之间相似的设计哲学  ·学习高级数据结构,来提升算法的性能  通过《算法技术手册》,您能学到如何提升算法的性能,这将是您的软件应用程序走向成功的关键。  作者简介:George T.Heineman,Gary Pollice和Stanley Selkow均为 Woree ste r PolYteChniC In stitute(伍斯特理工学院)计算机科学系的教授。George是《Component—B ased Software Engineering:Putting the Pieces Together》(Addison—Wesley(的合编者,Gary则是《Head First Object-Oriented Analysis and Design》(O'Reilly)的合著者。

作者简介

George T.Heineman,Gary Pollice和Stanley Selkow均为 Woree ster PolYteChniC In stitute(伍斯特理工学院)计算机科学系的教授。George是《Component—B ased Software Engineering:Putting the Pieces Together》(Addison—Wesley(的合编者,Gary则是《Head First Object-Oriented Analysis and Design》(O'Reilly)的合著者。

书籍目录

前言 第一部分  第1章 算法真的很重要   理解问题   如果需要,尽可能用实践检验   解决问题的算法   花絮   故事的寓意   参考文献  第2章 算法的数学原理   问题样本的规模   函数的增长率   最好最坏和平均情况下的性能分析   性能指标   混合操作   基准测试   最后一点   参考文献  第3章 模式和领域   模式:一种交流语言   算法模式的格式   伪代码模式的格式   设计格式   基于经验的评价格式   领域和算法   浮点计算   手动内存分配   选择一门编程语言   参考文献 第二部分  第4章 排序算法   概述   插入排序   中值排序   快速排序   选择排序   堆排序   计数排序   选择排序算法的标准   参考文献  第5章 查找   概述   顺序查找   二分查找   基于散列的查找   二叉查找树   参考文献  第6章 图算法   概述   深度优先搜索   广度优先搜索   单源最短路径   所有点对最短路径   最小生成树算法   参考文献  第7章 人工智能中的寻路,   概述   深度优先搜索   广度优先搜索   A*搜索   比较   Minimax   NegMaX   AlphaBeta   参考文献  第8章 网络流算法   概述   最大流   二部图匹配   在增广路上的深入思考   最小开销流   转运问题   运输问题   任务分配问题   线性编程   参考文献  第9章 计算几何   概述   凸包扫描   线段扫描   最近点查询   范围查询   参考文献 第三部分  第10章 最后的招数   另类算法   近似算法   离线算法   并行算法   随机算法   结果可能出错却可以衰减错误率的算法   参考文献  第11章 尾声   概述   原则:了解数据   原则:将问题分解至更小的问题   原则:选择正确的数据结构   原则:空间换时间   原则:如果没有显而易见的解法,使用搜索   原则:如果没有显而易见的解法,将问题归约为另一个有解的问题   原则:编写算法难,测试算法更难 第四部分 附录基准测试

章节摘录

插图:这个方法的总开销取决于你在每个槽中是元素列表还是nil值(表示没有列表)。当一个槽只有一个元素时,它可以使用列表来存取。作为我们的第一个近似的解决方案,我们将会使用这种方法并且在性能成为瓶颈时改进它。驱动因素选择散列函数是在实现基于散列的查找之前必须做的第一个决定。散列已经被研究多年,并且有大量的描述高效散列函数的论文,不过用在查找上使用这些函数简直是杀鸡用牛刀。例如,某些特定的散列函数对于加密非常重要。对于查找来说,一个散列函数必须要有一个好的分布,并且计算速度非常快。存储器空间是设计基于散列查找时需要考虑的另外一个因素。主存储器A必须能够足够大,以存下所有的查找键值,并且要给冲突键值留下足够的空间。A的大小通常是一个素数。但是,如果我们不使用开放定址的话(见接下来的“变种”一节),我们能够使用任何数字作为A的大小。实践中一个好的选择是2k-1,即使这个值并不是素数。存储在散列表的元素对内存有直接的影响。考虑图5-3的是如何在链表中存储每个字符串的,所以存储在A中的元素看做链表元素。堆中包含着指向元素的指针。每一个链表都有存储的开销,包含着指向链表中的第一个和最后一个元素。如果你使用Java的LinkedList类,一些很重要的附加字段和类使得实现非常灵活。程序员可以写一个简单得多的链表类,只提供必需的功能,但是确实给基于散列查找算法带来了额外的开销。如果你使用Linked List类,假设指针是四个字节,那么A中的每一个非空元素都需要12字节内存。每个字符串元素不可以直接转换成ListElement,需要12个额外字节。对于之前的那个有213 557个单词的例子,我们需要5005488字节的额外存储。

媒体关注与评论

“作者完成了一项了不起的工作,将晦涩的学术加以精炼,完美地在理论和实践之间取得了平衡,从而使本书成为了一本不可或缺的指南。从此,彻底领悟算法就变得十分简单了。”  ——Matthew Russell. Digital ReasOning Systems高级技术总监,《D0jo权威指南》(O’Reilly)的作者


编辑推荐

《算法技术手册》是由机械工业出版社出版的。

图书封面

图书标签Tags

广告

下载页面


算法技术手册 PDF格式下载



很实用的书,不愧为“技术手册”,用事实说话,对于算法的性能,大多使用实验数据说明。


作为一名软件开发人员,边学边做,这是一本很有用的工具书
就像小学生的新华字典一样,也是加薪升职的明灯


书很有难度啊


偏向实用的算法书,
很适合新手阅读


买这本书就是为了学习算法,内容浅显易懂,我同事也在看。


这本书很经典,个人觉得这本书比较适合有点基础的,比如学过C语言,C++语言或者JAVA语言。这本书上的代码很实用,可以多学习学习。


我想大部分的程序员看这本书是为了面试准备吧:)


这本书我个人认为一般 还不如我大学的算法课本 没事翻翻就行了


偏理论,看起来枯燥点


这本书写的非常浅显易懂,而且价格也在可以接受的范围。印刷质量很好。总之是一部好书。买了不后悔。呵呵


刚看了几章,确实挺好的书,上学时候学的也忘了不少了哦书送到手的时候,书下侧有被硬物挤压的痕迹!


算法技术手册 很不错啊


不像那些为了讲解算法而排列各种算法的合集书籍,它以严格的逻辑分析算法,同时以核心算法为题,以浅入深地引领读者去领会算法的正真内涵和使用方略!


还是一本有特点的书,如果你不太注重形式化的讲解,这本书还是很适合你的。算法配图说明不错。里面还有A*算法,网络流等,恩,还是不错的。


亚马逊很快,让我很高兴,这本书还没看,但是同学的评价都不错


如果英文可以的话,还是买影印版吧。我没翻几页已经看到一堆问题了


算法的书籍有很多,除了那本大部头的就这本比较实用了,书中的代码都可以直接使用,覆盖的范围也够用了,从排序到人工智能,没有太多的理论分析,非常实用,每个算法都提供有效率分析,这样我们就可以估算是否能够用在我们自己的代码中,是否能够用书中的算法来优化我们的系统,值得购买和拥有!


发现内容还不错。讲的东西也挺深刻的啊


买了,没怎么看,老实说讲得让人很不明白。我没学过算法,这本书不大适学初学者.今天又拿出来看,本来是想扎扎实实的看下去的,发现根本没法看啊,语言上都讲不通。下载了英文版的一看,原来这本书整个就是用金山快译翻译的,居然还有人说他翻译的好,是托吗


很喜欢,内容和纸张都不错 推荐;


机械工业出版社就是喜欢用这种纸张,比影印外文版(东南大学出版时)的差好些,另外纸张比那个也大,不太喜欢,总体还好,翻译得不知道怎么样,回头再看看


翻译的还可以吧,至少第一章还行,不知道后面质量是不是有所下降……内容偏向工程应用,适合像我这种数学不及格的人看。


很不错的书,有较多的配图,比较通俗易懂。最后强烈要求换东南大学出版社出版,机工社的纸质真渣。我手上有两本O'REILLY的书,东大的纸质明显好很多!


相关图书