搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
算法技术手册
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111286745
  • 作      者:
    (美)George T. Heineman , (美)Gary Pollice ,(美)Stanley Selkow著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2010
收藏
作者简介
  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》(OReilly)的合著者。
展开
内容介绍
  开发健壮的软件需要高效的算法,然后程序员们往往直至问题发生之时,才会去求助于算法。《算法技术手册》讲解了许多现有的算法,可用于解决各种问题。通过阅读它,可以使您学会如何选择和实现正确的算法,来达成自己的目标。另外,书中的数学深浅适中,足够使您可以了解并分析算法的性能。
  较之理论而言,本书更专注于应用。《算法技术手册》提供了高效的代码解决方案,使用多种语言进行编写,让您可以轻松地将其应用于特定的工程当中。通过本书,您可以:
  ·解决特定代码的问题,或者提升既有解决方案的性能
  ·快速找到与您所解决的问题相关的算法,并决定哪个算法才是最适合的那一个
  ·探索使用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》(OReilly)的合著者。
展开
精彩书评
  “作者完成了一项了不起的工作,将晦涩的学术加以精炼,完美地在理论和实践之间取得了平衡,从而使本书成为了一本不可或缺的指南。从此,彻底领悟算法就变得十分简单了。”
  ——Matthew Russell. Digital ReasOning Systems高级技术总监,《D0jo权威指南》(O’Reilly)的作者
展开
精彩书摘
  这个方法的总开销取决于你在每个槽中是元素列表还是nil值(表示没有列表)。当一个槽只有一个元素时,它可以使用列表来存取。作为我们的第一个近似的解决方案,我们将会使用这种方法并且在性能成为瓶颈时改进它。驱动因素选择散列函数是在实现基于散列的查找之前必须做的第一个决定。散列已经被研究多年,并且有大量的描述高效散列函数的论文,不过用在查找上使用这些函数简直是杀鸡用牛刀。例如,某些特定的散列函数对于加密非常重要。对于查找来说,一个散列函数必须要有一个好的分布,并且计算速度非常快。存储器空间是设计基于散列查找时需要考虑的另外一个因素。主存储器A必须能够足够大,以存下所有的查找键值,并且要给冲突键值留下足够的空间。A的大小通常是一个素数。但是,如果我们不使用开放定址的话(见接下来的“变种”一节),我们能够使用任何数字作为A的大小。实践中一个好的选择是2k-1,即使这个值并不是素数。存储在散列表的元素对内存有直接的影响。考虑图5-3的是如何在链表中存储每个字符串的,所以存储在A中的元素看做链表元素。堆中包含着指向元素的指针。每一个链表都有存储的开销,包含着指向链表中的第一个和最后一个元素。如果你使用Java的LinkedList类,一些很重要的附加字段和类使得实现非常灵活。程序员可以写一个简单得多的链表类,只提供必需的功能,但是确实给基于散列查找算法带来了额外的开销。如果你使用Linked List类,假设指针是四个字节,那么A中的每一个非空元素都需要12字节内存。每个字符串元素不可以直接转换成ListElement,需要12个额外字节。对于之前的那个有213 557个单词的例子,我们需要5005488字节的额外存储。
展开
目录
前言
第一部分
第1章 算法真的很重要
理解问题
如果需要,尽可能用实践检验
解决问题的算法
花絮
故事的寓意
参考文献

第2章 算法的数学原理
问题样本的规模
函数的增长率
最好最坏和平均情况下的性能分析
性能指标
混合操作
基准测试
最后一点
参考文献

第3章 模式和领域
模式:一种交流语言
算法模式的格式
伪代码模式的格式
设计格式
基于经验的评价格式
领域和算法
浮点计算
手动内存分配
选择一门编程语言
参考文献

第二部分
第4章 排序算法
概述
插入排序
中值排序
快速排序
选择排序
堆排序
计数排序
选择排序算法的标准
参考文献

第5章 查找
概述
顺序查找
二分查找
基于散列的查找
二叉查找树
参考文献

第6章 图算法
概述
深度优先搜索
广度优先搜索
单源最短路径
所有点对最短路径
最小生成树算法
参考文献

第7章 人工智能中的寻路
概述
深度优先搜索
广度优先搜索
A*搜索
比较
Minimax
NegMaX
AlphaBeta
参考文献

第8章 网络流算法
概述
最大流
二部图匹配
在增广路上的深入思考
最小开销流
转运问题
运输问题
任务分配问题
线性编程
参考文献

第9章 计算几何
概述
凸包扫描
线段扫描
最近点查询
范围查询
参考文献

第三部分
第10章 最后的招数
另类算法
近似算法
离线算法
并行算法
随机算法
结果可能出错却可以衰减错误率的算法
参考文献

第11章 尾声
概述
原则:了解数据
原则:将问题分解至更小的问题
原则:选择正确的数据结构
原则:空间换时间
原则:如果没有显而易见的解法,使用搜索
原则:如果没有显而易见的解法,将问题归约为另一个有解的问题
原则:编写算法难,测试算法更难
第四部分
附录基准测试
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证