算法:C语言实现

当前位置:首页 > 教材 > 研究生/本专科 > 算法:C语言实现

出版社:机械工业出版社
出版日期:2009-10
ISBN:9787111275718
作者:塞奇威克
页数:456页

章节摘录

插图:还有一个例子出现在某种程序设计环境中,连通性可用来断言两个变量名是否等价。问题是在经过这样的断言序列之后,能够确定两个给定的名字是否等价。这个应用激发了我们打算考虑的几个算法的研制。它直接将我们的问题与一种简单抽象关联起来,为使算法具有广泛应用而提供了一种方法。我们即将看到这一点。像上一段描述的变量名等价问题这样的应用程序要求我们把每个不同的变量名与一个整数关联起来。这种关联关系也隐含在前面描述的网络连接和电路连接的应用中。在第10章至第16章,我们将会以一种更高效的方法考虑提供这种连接关系的大量算法。因此,不失一般性,本章假设有N个对象,每个都与0一N一1之间的一个整数名对应。我们正在寻求完成特定和良定义任务的程序,可能还想要解决其他许多相关的问题。在研制算法时我们面对的首要任务之一是确信我们已经以合理的方式指定了问题。我们要求算法的越多,它完成任务所需要的时间和空间越多。不可能量化这个关系,并且我们在发现一个问题难以求解或是求解代价昂贵,或是在好的情况下,发现算法可以比原始说明提供更多有用的信息时,我们常常修改这个问题的说明。例如,我们的连通问题的说明只要求我们的程序知道任意给定对p—q是否是连通的,并不能够表明连接那个对的任何方式。添加这样一个说明的要求会使问题更加困难,会涉及其他的算法,我们将在第5章简略讨论,并在第7章详细讨论。前面这段提到的说明要比原始说明要求更多的信息,我们也可以要求更少的信息。例如,我们可能只想回答这样的问题:“M个连接足以把Ⅳ个对象都连接起来吗?”这个问题表明,要研制一个高效的算法,常常需要我们对正在处理的抽象对象进行高级推理。在这种情况下,由图论基本结果可以得出所有Ⅳ个对象是连通的,当且仅当连通算法输出的对的个数恰好为N一1(见5.4节)。换句话说,连通算法永远不会输出多于N一1个对,这是因为一旦它输出N一1个对,则它从那个时刻遇见的任何对将会是连通的。因此,我们可以修改求解连通问题的程序,增加一个计数器就可以得到一个回答yes-no问题的程序,而不输出那些前面不连通的每个对,当计数器的值为N-1时,程序回答“yes”,否则回答“no”。这个问题只是我们希望回答关于连通性的许多问题中的一个例子。输入对的集合称为图(graph),输出对的集合称为图的生成树,它连接了所有对象。我们在第七部分考察图、生成树以及所有相关算法的性质。

前言

写本书的目的是为了对当今使用最为重要的计算机算法做一综述,并为需要学习这方面知识的越来越多的读者提供基础的技术。本书可以在学生掌握了所需的基本程序设计技巧,熟悉了计算机系统,但还未学过计算机科学或计算机应用高级领域的专业课程的时候,用作计算机科学的第二。第三或第四门课程的教科书。此外,由于本书包含了大量有用算法的实现,以及关于这些算法的性能特征的详细信息,因而它还可用于自学,或者作为从事计算机系统或应用程序开发人员的参考手册。宽广的视角使得本书成为计算机算法领域最合适的入门读物。对于新的一版,我不仅完全重写了它的内容,而且还添加了一千多个练习。一百多幅图表和数十个新程序。我还给所有图表和程序添加了详细的注释。新的素材不仅涵盖了新的主题,而且还包含对经典算法的更完整解释。抽象数据类型是这本书的重点,这使得程序应用更广泛,并且与现代面向对象的程序设计环境更紧密。读过本书旧版本的人一定会发现,新版本包含了更为丰富的新信息,所有读者将发现大量的教学资料为掌握基本概念提供了有效途径。由于新的素材数量过多,所以我们把新版本分为两卷(每一卷的容量都大约为旧版本的大小),本书是第一卷。这卷书中包含了基本概念。数据结构。排序算法和搜索算法,第二卷涵盖的高级算法及应用是以第一卷的基本抽象概念和方法为基础的。这个新版中的关于基本原理和数据结构的所有素材几乎都是新的。这本书不仅适合于程序员和计算机科学专业的学生,而且也适合于想利用计算机并想使它运行更快或是想要解决更大问题的人们。这本书中的算法代表了过去50年来所研究的知识主体。对于大量应用问题,这些知识主体已经成为有效使用计算机的不可缺少的部分。从物理学中的N-体模拟问题到分子生物学中的序列分析问题,在此所描述的基本方法在科学研究中已日显重要。另外,对于从数据库系统到Internet搜索引擎,这些方法已经成为现代软件系统的重要组成部分。随着计算机应用的覆盖面越来越广,基本算法的影响也日益显著。本书的目标是要提供一种资源,使广大学生以及专业人士可以了解并有效利用这些算法解决计算机应用中出现的问题。

媒体关注与评论

对于在数学分析方面不算熟练且需要留意理论算法的普通程序员来说,本书是一本可读性很强的优秀读本。他们应该会从中获益良多。  ——Steve Summit,《C Programming FAQs》的作者Sedgewick有一种真正的天赋,可以用易于理解的方式来解释概念。书中采用了一些易懂的实战程序,其篇幅仅有一页左右,这更是锦上添花。而书中大量采用的图、程序、表格也会极大帮助读者的学习和理解,这使本书更显得与众不同。  ——William A. Ward,南亚拉巴马大学

内容概要

Robed Sedgewick拥有斯坦福大学博士学位(导师为Donald E. Knuth),昔林斯顿大学计算机科学系教授,Adobe Systems公司董事,曾是XeroxPARC的研究人员,还曾就职于美国国防部防御分析研究所以及INRIA。除本书外,他还与Philippe Flajolet合著了《算法分析导论》一书

书籍目录

出版者的话
译者序
前言
第一部分 基础知识
 第1章 引言
  1.1 算法
  1.2 典型问题——连通性
  1.3 合并一查找算法
  1.4 展望
  1.5 主题概述
 第2章 算法分析的原理
  2.1 实现和经验分析
  2.2 算法分析
  2.3 函数的增长
  2.4 大O符号
  2.5 基本递归方程
  2.6 算法分析示例
  2.7 保证、预测及局限性
第二部分 数据结构
 第3章 基本数据结构
  3.1 构建组件
  3.2 数组
  3.3 链表
  3.4 链表的基本处理操作
  3.5 链表的内存分配
  3.6 字符串
  3.7 复合数据结构
 第4章 抽象数据类型
  4.1 抽象对象和对象集
  4.2 下推栈ADT
  4.3 栈ADT客户示例
  4.4 栈ADT的实现
  4.5 创建一个新ADT
  4.6 FIFO队列和广义队列
  4.7 复制和索引项
  4.8 一级ADT
  4.9 基于应用的ADT示例
  4.10 展望
 第5章 递归与树
  5.1 递归算法
  5.2 分治法
  5.3 动态规划
  5.4 树
  5.5 树的数学性质
  5.6 树的遍历
  5.7 递归二叉树算法
  5.8 图的遍历
  5.9 综述
第三部分 排序
 第6章 基本排序方法
  6.1 游戏规则
  6.2 选择排序
  6.3 插入排序
  6.4 冒泡排序
  6.5 基本排序方法的性能特征
  6.6 希尔排序
  6.7 对其他类型的数据进行排序
  6.8 索引和指针排序
  6.9 链表排序
  6.10 关键字索引统计
 第7章 快速排序
  7.1 基本算法
  7.2 快速排序算法的性能特征
  7.3 栈大小
  7.4 小的子文件
  7.5 三者取中划分
  7.6 重复关键字
  7.7 字符串和向量
  ……
 第8章 归并与归并排序
 第9章 优先队列和堆排序
 第10章 基数排序
 第11章 特殊用途的排序方法
第四部分 搜索
 第12章 符号表和二叉搜索树
 第13章 平衡树
 第14章 散列
 第15章 基数搜索
 第16章 外部搜索

作者简介

《算法:C语言实现(第1-4部分)基础知识、数据结构、排序及搜索(原书第3版)》细腻讲解计算机算法的C语言实现。全书分为四部分,共16章。包括基本算法分析原理,基本数据结构、抽象数据结构、递归和树等数据结构知识,选择排序、插入排序、冒泡排序、希尔排序、快速排序方法、归并和归并排序方法、优先队列与堆排序方法、基数排序方法以及特殊用途的排序方法,并比较了各种排序方法的性能特征,在进一步讲解符号表、树等抽象数据类型的基础上,重点讨论散列方法、基数搜索以及外部搜索方法。书中提供了用C语言描述的完整算法源程序,并且配有丰富的插图和练习,还包含大量简洁的实现将理论和实践成功地相结合,这些实现均可用在真实应用上。
《算法:C语言实现(第1-4部分)基础知识、数据结构、排序及搜索(原书第3版)》内容丰富,具有很强的实用价值,适合作为高等院校计算机及相关专业本科生算法课程的教材,也是广大研究人员的极佳参考读物。

图书封面


 算法:C语言实现下载 更多精彩书评



发布书评

 
 


精彩书评 (总计11条)

  •     用图示化方式说明算法的特点,是本书的一大特色。只是翻译者实在是欠骂,这么垃圾的翻译还不如不译,糟蹋了这么好的一本书!!封面上都写上你的名字了,都不怕遭人骂吗?!留给别人翻译多好啊!!
  •     翻译质量较差,像是未加任何处理的英文直译,不符合中文阅读习惯,另有不少不知所云的地方。如188页的《6.10 关键字索引统计》中有这样的叙述:“一种方法是计算0的个数,然后再次扫描输入a,使用两个表示统计数的一个数组,把元素分布在临时数组b中。”。为了不影响阅读,我一般都直接看代码(有些代码也有bug,如172页程序6.5 希尔排序的实现)。。。。挺影响阅读心情的
  •     美国大学本科生课程“Algorithm and Data Structure”的指定教材,我偷懒,下了中文版来看,实在是忍不了翻译,看回英文版。明明很简单的一句话能叫译者说的不明所以。真是译成这样不如不译啊。。。

精彩短评 (总计101条)

  •     一本值得收藏的算法书。
  •     有点深奥,但经典来的
  •     对算法很有帮助,尤其是学习C语言的同学
  •     这是我读过的最牛逼的算法书,我个人觉得比算法导论要好许多。Sedgewick是大神Knuth的学生,品质保证!这个系列已经出了两卷了,第二卷是专讲图算法,中英文均已入手,第三卷还没有出版。均值得深入拜读!
  •     建议找周良忠翻译的版本来看,可是只能找到电子版了,霍卫红的这版看了简直要怀疑人生…
  •     垃圾的一塌糊涂的翻译 我发誓这是我所见过的书籍中翻译得最垃圾的一本
  •     收货很快,目视不错哦,希望收获可以很多
  •     经典,工程和算法技术结合紧密,但也明确偏重算法
  •     主要看CLRS了,这本没怎么看。从看过的章节来说,还不错。
  •     算法实现的经典书籍。要是能把这一本书和另外一本图论结合到一起的书就好了。内容和算法导论比比较简单,容易懂。和程序设计艺术比就更简单了。推荐算法入门者读,多多练习才是王道嘛。
  •     原著很好,中文翻译很差!
  •     虽然理论很多,但描述的通俗易懂,思想提炼很精辟,翻译再精致一点儿就完美了。
  •     算法,重在实现。
  •     感觉没有算法导论这本书写的好,但是有兴趣的买来看看吧
  •     从严蔚敏看到算法导论,从算法导论看到 TAOCP ,我还是最喜欢这一本:实用、易懂,不装逼。
  •     翻译的质量太次。五颗星都给Sedgewick,可剩下的只买到了图算法,其他的部分不知道哪里有卖。
  •     回过头再重新掌握基础的东西,才能有提高
  •     嗷,详细好看翻译烂。|||然后还是会反复翻出来看
  •     算法经典书,值得一看
  •     链接是对本书的一个比较全面的评价。http://book.douban.com/review/5386368/
  •     挺有用的书 工具必备
  •     算法入门不错的书,从需求分析到算法实现再到优化升级,循序渐进
  •     就是排版差,習題沒數據的都有點掉架呀⋯
  •     出乎我的意料,好书!它以后就是我的算法参考书,算法导论一边睡去吧。
  •     不多说了,给好评
  •     书还没看,内容不评论。书质量很好,包装也很认真,印刷很清晰,很满意。赞一个当当的快递员,服务态度真的没话说。
  •     一本用C来实现基本数据结构和算法的好书。
  •     买来自己查阅的
  •     翻译得还不错,关于数据结构很不错的书,要继续读下去
  •     同事说不错哦
  •     不错,看过电子书觉得不错才买的,算法中不错的书吧
  •     很优秀的书,看过前三章,感觉它可以超越我看过的任何算法书籍
  •     暂时只看了前两部分,知识循序渐进地介绍,很有帮助
  •     计算机最核心的就是算法,数据结构
  •     买了几次,质量都很好,人品看来不错哈
  •     必备利器,全部了然于胸就算是入门了
  •     不用怀疑很好的书
  •     书看起来不错,不适合初学者
  •     国外的书,很不错。
  •     翻译很烂,很多直译,越读越不爽。
  •     不过还是谢谢了
  •     包装挺好的,还没看,应该不错
  •     比起严蔚敏所谓的数据结构至少算是好书了
  •     书的质量很好,对自己很有帮助
  •     很好的一本算法书 完成第一章了 就是感觉想要看看原版 看了一半多 在欠了图书馆7毛钱后还回去了
  •     先去图书馆借了看,感觉不错,买了一本,就可以在上面做笔记了!
  •     值得一看,让我受益匪浅。









  •     写得很好,不过有些难。初学编程者不太适合学习。
  •     算法:C语言实现
  •     从这本书我学到最多的是 抽象数据结构的设计。挺不错的。读了第一卷和第二卷。可惜第三卷没有出。
  •     翻译不好。
  •     英文版评价就不高,何况来了个日鬼的翻译
  •     看书必看经典,这名话还是很有价值的。在历史的磨练下,很多书只是一时红火,而真正的经典留了下来。这本书就是其中之一,感慨的是,国内许多所谓大作占用发展基金,到头来很多却是滥竽充数的货色。我认为只有用心之作才能得到读者的真正欢迎。
  •     C语言写的很好
  •     本书是一本非常专业的书籍。难度有点大。但是认真研究完后确实能够提高你的数据结构的运用能力。这本书要慢慢地品味,切不可马虎。但是本书的价格确实贵了一点。而且还将图的部分分到另一本书上面,明显是为了赚钱,因为本书根本不厚。经典书籍有很多,但是知识也是有价的啊。
  •     这本书很经典,将各种算法通过具体的事例来进行讲解,加快了学习的速度
  •     前面的结合英文原版看,还是可以接受的.可是看到第五章之后,我真的是受不了了.翻译虽然是个大问题,可是这个作者组织语言的方式也是奇葩,英文原文本来就已经写的晦涩难懂了,就不要指望翻译能有多好了
  •     翻译真的是个硬伤,不过算法实现不错
  •     挺好一本书,特别是代码 非常的言简意赅。
  •     书很好,内容需要自己仔细的推敲
  •     大致上用C语言描述伪代码,值得仔细地研究
  •     还是得实际运行一下,光这么看太晕了..而且,不是为了某个目的,动力不足的说
  •     买到的书籍都是新的,没有损坏,发货速度也非常快,非常满意
  •     很经典的书 适合初学者,只是有些贵了
  •     我才刚看这本书,内容有待以后再说,印刷很清楚,不足是纸薄了点
  •     学长推荐的书,代码部分非常经典,值得一读!
  •     一直收藏着等下册一起买呢,口碑好
  •     书挺不错,挺经典,不过没太怎么看,送人了
  •     翻译没啥问题啊,内容也详略得当。有空看看他徒弟的书。20160924
  •     好书 值得研究
  •     很经典的算法教材哦
  •     想要研究一下算法的C语言实现,所以就买了这边书。
  •     翻译得太烂了!!!严重影响阅读学习心情!!!
  •     非常不错,非常适合初学者学习
  •     唉,写什么呢好书呗
  •     看了第一章后,脑壳痛。「我是看几页就睡着了,然后接着看」不知道是翻译问题还是我的理解能力有限,我反正看不太懂
  •     本书确实很好!但是有些细节翻译的不够完美
  •     首先送书很快,让我异常惊讶,书的内容很棒,一般在学习算法方面的内容的图书的时候都会被大量的数学分析而吓跑,而这本书不会,作者以其独到的笔锋带你进入另一个算法的世界
  •     中文版翻译很烂
  •     纯C的代码,不像清华版的都是vc,上机直接运行
  •     图文并茂 物超所值 值得仔细研究
  •     东西是正品的。内容不好说,是外国人写的东西,不像中国人写的好理解,主要是让人去思考。
  •     我是配套买的,虽然计算机二级过了,但是嘛,学的毕竟是皮毛,所以想认真钻研一下,书确实不错,不愧为经典之作!!!
  •     经典书籍,高德纳的弟子作品。
  •     这本书的包装碉堡了,书的外面还有一层膜。
  •     用C语言实现算法,不过写的程序属于小片段,有些细节如malloc的类型转换作者忽略了,完全按照他程序写可能编译器会报错,但经典的作品,看两遍都不嫌多。
  •     knuth弟子的作品,对C程序员是很实用的。
  •     个人比较笨一点,对伪代码实现的算法,有些看不懂,所以就买了这本书,没想到这本书讲的如此详细,让我受宠若惊
  •     同事要求买的,看起来挺好的
  •     断断续续读了1年了,很多章节都重复读了几遍,非常的好
  •     女儿说现在还用不上,要到下学期。
  •     通过一个简单的例子研究算法,然后将这个算法不断的修正以便于适用于更大的问题。实分析的思路
  •     最近在学习算法,这么一本书很值得学习。
  •     实现很好,对自己帮助很大,实用
  •     书是好书,翻译要是好点儿就行了。
  •     这本书是我转战互联网的智囊
  •     做工挺好, 字体清晰。
  •     很经典的算法解析类的书,是程序员必备
  •     真心一般,还是别浪费时间在这个上面了,,算法导论和数据结构的书比这个好
  •     几乎秒杀了一切数据结构书籍,而且注重实现。
  •     书不错,值得一看,我是拿来收藏的
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024