算法第4版 - CSDN
精华内容
参与话题
  • 自己花钱淘到的一本还算清晰的算法 第四电子书,不算完美但是比网上能找到的资源都要清楚,300多兆
  • 算法 第4版-谢路云.zip

    2019-06-20 18:25:34
    算法 第4版-谢路云
  • 算法第4版

    千次阅读 2019-06-15 23:30:16
    算法第4版)》全面讲述算法和数据结构的必备知识,具有以下几大特色。 算法领域的经典参考书:Sedgewick 畅销著作,反映了经过几十年演化而成的算法核心知识体系; 内容全面:全面论述排序、搜索、图处理和字符...

    内容简介

    • Sedgewick 之巨著,与高德纳 TAOCP 一脉相承
    • 几十年多次修订,经久不衰的畅销书
    • 涵盖所有程序员必须掌握的 50 种算法

    《算法(第4版)》全面讲述算法和数据结构的必备知识,具有以下几大特色。

    1. 算法领域的经典参考书:Sedgewick 畅销著作,反映了经过几十年演化而成的算法核心知识体系;
    2. 内容全面:全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的 50 种算法;
    3. 全新修订的代码:全新的 Java 实现代码,采用模块化的编程风格,所有代码均可供读者使用;
    4. 与实际应用相结合:在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码;
    5. 富于智力趣味性:简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷;
    6. 科学的方法:用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的;
    7. 与网络相结合:配套网站 algs4.cs.princeton.edu 提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源。

    作者简介

    Robert Sedgewick,斯坦福大学博士,导师为 Donald E.Knuth,从 1985 年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是 AdobeSystems 公司董事会成员,曾在 Xerox PARC、国防分析研究所(Institute for DefenseAnalyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他的研究方向包括解析组合学、数据结构和算法的分析与设计、程序可视化等。

    KevinWayne,康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和实现,特别是图和离散优化。

    本书内容

    译者序

    在计算机领域,算法是一个永恒的主题。即使仅把算法入门方面的书都摆出来,国内外的加起来怕是能铺满整个天安门广场。在这些书中,有几本尤其与众不同,本书就是其中之一。

    本书是学生的良师。在翻译的过程中我曾无数次感叹:“要是当年我能拥有这本书那该多好!”应该说本书是为在校学生量身打造的。没有数学基础?没关系,只要你在高中学过了数学归纳法,那么书中 95% 以上的数学内容你都可以看得懂,更何况书中还辅以大量图例。没学过编程?没关系,第 1 章会给大家介绍足够多的 Java 知识,即使你不是计算机专业的学生,也不会遇到困难。整本书的内容编排循序渐进,由易到难,前后呼应,足见作者的良苦用心。没有比本书更专业的算法教科书了。

    本书是老师的好帮手。如果老师们还只能照本宣科,只能停留在算法本身一二三四的阶段,那就已经大大落后于这个时代了。算法并不仅仅是计算的方法,探究算法的过程反映出的是我们对这个世界的认知方法:是唯唯诺诺地将课本当做圣经,还是通过“实验—失败—再实验”循环的锤炼?数学是保证,数据是验证。本书通过各种算法,从各个角度,多次说明了这个道理,这也正是第 1 章是全书内容最多的一章的原因。希望每一位读者都不要错过第 1 章。无论你有没有编程基础,都会从中得到有益的启示。

    本书是程序员的益友。在工作了多年之后,快速排序、霍夫曼编码、KMP 等曾经熟悉的概念在你脑中是不是已经凋零成了一个个没有内涵的名词?是时候重新拾起它们了。无论是为手头的工作寻找线索,还是为下一份工作努力准备,这些算法基础知识都是你不能跳过的。本书强调软件工程中的最佳实践,特别适合已有工作经验的程序员朋友。所有的算法都是先有 API,再有实现,之后是证明,最后是数据。这种先接口后实现、强调测试的做法,无疑是在工作中摸爬滚打多年的程序员最熟悉的。

    本书也有一些遗憾,比如没有介绍动态规划这样重要的思想。但是瑕不掩瑜,它仍然是最好的入门级算法书。我强烈地希望能够把本书翻译成中文,但同时也诚惶诚恐,如履薄冰,担心自己的水平不足以准确传达原文的意思。翻译的过程虽然辛苦,但我觉得非常值得。感谢人民邮电出版社图灵公司给了我这个机会,感谢编辑和审稿专家的细心检查。同时感谢我的妻子朱天的全力支持。译者水平有限,bug 在所难免,还请读者批评指正。

    谢路云

    2012.9.17

    前言

    本书力图研究当今最重要的计算机算法并将一些最基础的技能传授给广大求知者。它适合用做计算机科学进阶教材,面向已经熟悉了计算机系统并掌握了基本编程技能的学生。本书也可用于自学,或是作为开发人员的参考手册,因为书中实现了许多实用算法并详尽分析了它们的性能特点和用途。这本书取材广泛,很适合作为该领域的入门教材。

    算法和数据结构的学习是所有计算机科学教学计划的基础,但它并不只是对程序员和计算机系的学生有用。任何计算机使用者都希望计算机能运行得更快一些或是能解决更大规模的问题。本书中的算法代表了近 50 年来的大量优秀研究成果,是人们工作中必备的知识。从物理中的 N 体模拟问题到分子生物学中的基因序列问题,我们描述的基本方法对科学研究而言已经必不可少;从建筑建模系统到模拟飞行器,这些算法已经成为工程领域极其重要的工具;从数据库系统到互联网搜索引擎,算法已成为现代软件系统中不可或缺的一部分。这仅是几个例子而已,随着计算机应用领域的不断扩张,这些基础方法的影响也会不断扩大。

    在开始学习这些基础算法之前,我们先要熟悉全书中都将会用到的栈、队列等低级抽象的数据类型。然后依次研究排序、搜索、图和字符串方面的基础算法。最后一章将会从宏观角度总结全书的内容。

    独特之处

    本书致力于研究有实用价值的算法。书中讲解了多种算法和数据结构,并提供了大量相关的信息,读者应该能有信心在各种计算环境下实现、调试并应用它们。本书的特点涉及以下几个方面。

    算法 书中均有算法的完整实现,并讨论了程序在多个样例上的运行状况。书中的代码都是可以运行的程序而非伪代码,因此非常便于投入使用。书中程序是用 Java 语言编写的,但其编程风格方便读者使用其他现代编程语言重用其中的大部分代码来实现相同算法。

    数据类型 我们在数据抽象上采用了现代编程风格,将数据结构和算法封装在了一起。

    应用 每一章都会给出所述算法起到关键作用的应用场景。这些场景多种多样,包括物理模拟与分子生物学、计算机与系统工程学,以及我们熟悉的数据压缩和网络搜索等。

    学术性 我们非常重视使用数学模型来描述算法的性能。我们用模型预测算法的性能,然后在真实的环境中运行程序来验证预测。

    广度 本书讨论了基本的抽象数据类型、排序算法、搜索算法、图及字符串处理。我们在算法的讨论中研究数据结构、算法设计范式、归纳法和解题模型。这将涵盖 20 世纪 60 年代以来的经典方法以及近年来产生的新方法。

    我们的主要目标是将今天最重要的实用算法介绍给尽可能广泛的群体。这些算法一般都十分巧妙奇特,20 行左右的代码就足以表达。它们展现出的问题解决能力令人叹为观止。没有它们,创造计算智能、解决科学问题、开发商业软件都是不可能的。

    本书网站

    本书的一个亮点是它的配套网站 algs4.cs.princeton.edu。这一网站面向教师、学生和专业人士,免费提供关于算法和数据结构的丰富资料。

    一份在线大纲 包含了本书内容的结构并提供了链接,浏览起来十分方便。

    全部实现代码 书中所有的代码均可以在这里找到,且其形式适合用于程序开发。此外,还包括算法的其他实现,例如高级的实现、书中提及的改进的实现、部分习题的答案以及多个应用场景的客户端代码。我们的重点是用真实的应用环境来测试算法。

    习题与答案 网站还提供了一些附加的选择题(只需要一次单击便可获取答案)、很多算法应用的例子、编程练习和答案以及一些有挑战性的难题。

    动态可视化 书是死的,但网站是活的,在这里我们充分利用图形类演示了算法的应用效果。

    课程资料 网站包含和本书及网上内容对应的一整套幻灯片,以及一系列编程作业、核对表、测试数据和备课手册。

    相关资料链接 网站包含大量的链接,提供算法应用的更多背景知识以及学习算法的其他资源。

    我们希望这个站点和本书互为补充。一般来说,建议读者在第一次学习某种算法或是希望获得整体概念时看书,并把网站作为编程时的参考或是在线查找更多信息的起点。

    作为教材

    本书为计算机科学专业进阶的教材,涵盖了这门学科的核心内容,并能让学生充分锻炼编程、定量推理和解决问题等方面的能力。一般来说,此前学过一门计算机方面的先导课程就足矣,只要熟悉一门现代编程语言并熟知现代计算机系统,就都能够阅读本书。

    虽然本书使用 Java 实现算法和数据结构,但其代码风格使得熟悉其他现代编程语言的人也能看懂。我们充分利用了 Java 的抽象性(包括泛型),但不会依赖这门语言的独门特性。

    书中涉及的多数数学知识都有完整的讲解(少数会有延伸阅读),因此阅读本书并不需要准备太多数学知识,不过有一定的数学基础当然更好。应用场景都来自其他学科的基础内容,同样也在书中有完整介绍。

    本书涉及的内容是任何准备主修计算机科学、电气工程、运筹学等专业的学生应了解的基础知识,并且对所有对科学、数学或工程学感兴趣的学生也十分有价值。

    背景介绍

    这本书意在接续我们的一本基础教材《Java 程序设计:一种跨学科的方法》,那本书对计算机领域做了概括性介绍。这两本书合起来可用做两到三个学期的计算机科学入门课程教材,为所有学生在自然科学、工程学和社会科学中解决计算问题提供必备的基础知识。

    本书大部分内容来自 Sedgewick 的算法系列图书。本质上,本书和该系列的第 1 版和第 2 版最接近,但还包含了作者多年教学和学习的经验。Sedgewick 的《C 算法(第 3 版)》、《C++ 算法(第 3 版)》、《Java 算法(第 3 版)》更适合用做参考书或是高级课程的教材,而本书则是专门为大学一、二年级学生设计的一学期教材,也是最新的基础入门书或从业者的参考书。

    致谢

    本书的编写花了近 40 年时间,因此想要一一列出所有参与人是不可能的。本书的前几版一共列出了好几十人,其中包括(按字母顺序)Andrew Appel、Trina Avery、Marc Brown、Lyn Dupré、Philippe Flajolet、Tom Freeman、Dave Hanson、Janet Incerpi、Mike Schidlowsky、Steve Summit和Chris Van Wyk。我要感谢他们所有人,尽管其中有些人的贡献要追溯到几十年前。至于第 4 版,我们要感谢试用了本书样稿的普林斯顿及其他院校的数百名学生,以及通过本书网站发表意见和指出错误的世界各地的读者。

    我们还要感谢普林斯顿大学对于高质量教学的坚定支持,这是本书得以面世的基础。

    Peter Gordon 几乎从本书写作之初就提出了很多有用的建议,这一版奉行的“归本溯源”的指导思想也是他最早提出的。关于第 4 版,我们要感谢 Barbara Wood 认真又专业的编辑工作,Julie Nahil 对生产过程的管理,以及 Pearson 出版公司中为本书的付梓和营销辛勤工作的朋友。所有人都在积极地追赶进度,而本书的质量并没有受到丝毫影响。

    第 1 章 基础(一)
    第 1 章 基础(二)
    第 1 章 基础(三)
    第 1 章 基础(四)
    第 2 章 排序(一)
    第 2 章 排序(二)
    第 2 章 排序(三)
    第 2 章 排序(四)
    第 3 章 查找(一)
    第 3 章 查找(二)
    第 3 章 查找(三)
    第 3 章 查找(四)
    第 4 章 图(一)
    第 4 章 图(二)
    第 4 章 图(三)
    第 4 章 图(四)
    第 5 章 字符串(一)
    第 5 章 字符串(二)
    第 5 章 字符串(三)
    第 5 章 字符串(四)
    第 6 章 背景(上)
    第 6 章 背景(中)
    第 6 章 背景(下)

    阅读全文: http://gitbook.cn/gitchat/geekbook/5d007178a734cc3011ebbba5

    展开全文
  • 算法第4版)》一书的代码和课后练习的答案我都分享到了我的GitHub上面,地址如下: https://github.com/jimmysuncpt/Algorithms 如果对您有帮助,觉得还不错,麻烦赏个Star吧!您也可以贡献您的代码,帮助完善...

    《算法(第4版)》一书的代码和课后练习的答案我都分享到了我的GitHub上面,地址如下:
    如果对您有帮助,觉得还不错,麻烦赏个Star吧!您也可以贡献您的代码,帮助完善这个项目,十分感谢哦!
    另外,分享另一个兄弟的可供参考:https://github.com/aistrate/AlgorithmsSedgewick

    下面是一些常见的问题及解决方法:
    终止Console继续读入流:
    书上有一些题目需要从Console读取流并进行处理,从Console读取有个问题就是如何终止流的输入,如果不手动终止输入StdIn.isEmpty()始终是false,这样后面的代码始终无法执行,Eclipse默认的EOF是Ctrl+Z(在Console输入完内容按回车以后按Ctrl+Z就会终止当前输入,即StdIn.isEmpty()为true),但有个问题是有时第一次运行后用Ctrl+Z终止流输入是有效的,再次运行那个类Ctrl+Z就失效了。
    解决方法是鼠标点击代码编辑页面,再点击控制台,Ctrl+Z就有效了。注意在Ctrl+Z终止之后如果后面的代码还有输入的地方,后面的输入是无法执行的。
    Eclipse从控制台直接读取文件:
    比如你运行的类当前需要读取一个.txt的文件,可以这样设置:Run - Run Configurations - Common,勾选Input File,并选择输入的文件,如下图所示:

    这样点击运行的时候控制台就不用输入了。
    Eclipse命令行参数使用:
    Run - Run Configurations - 右边 Arguments 里Program arguments中写。
    如果写的是文件,默认该文件要放在项目的根目录里。当然也可以换位置,勾选Working directory的Other,然后选择文件目录即可。
    Eclipse开启断言:
    Run - Run Configurations - Arguments选项卡,在VM arguments里输入-ea代表开启断言,输入-da代表禁止断言。
    第五章第五节数据压缩算法的测试:
    基本思路是将output定向到一个txt文件中,将压缩后的比特流保存到一个txt的文件中,验证解压缩算法时,从txt文件中读取比特流然后在控制台打印解压后的内容,具体操作如下:
    首先新建一个用于保存比特流的txt文件,比如temp.txt,将文件放入具体的包中(根目录也行),然后将输出定向到该文件,具体这样设置:Run - Run Configurations - Common,勾选Output File,并选择输出的文件,然后直接运行,如下图所示:

    这样压缩后的比特流就保存到了temp.txt文件中了(如果没有变化就刷新一下),验证解压缩算法的时候就将“Input File:”定向到temp.txt文件。


    展开全文
  • 算法 第4版 》是Sedgewick之巨著 与高德纳TAOCP一脉相承 是算法领域经典的参考书 涵盖所有程序员必须掌握的50种算法 全面介绍了关于算法和数据结构的必备知识 并特别针对排序 搜索 图处理和字符串处理进行了论述 ...
  • 算法 第4版

    千次阅读 2017-05-10 14:12:34
    算法 第4版内容简介 · · · · · ·本书全面讲述算法和数据结构的必备知识,具有以下几大特色。  算法领域的经典参考书 Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系  内容...

    算法 第4版

    这里写图片描述

    这里写图片描述

    官方网站地址:http://algs4.cs.princeton.edu/home/

    内容简介 · · · · · ·

    本书全面讲述算法和数据结构的必备知识,具有以下几大特色。
     算法领域的经典参考书
    Sedgewick畅销著作的最新版,反映了经过几十年演化而成的算法核心知识体系
     内容全面
    全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法
     全新修订的代码
    全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用
     与实际应用相结合
    在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码
     富于智力趣味性
    简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷
     科学的方法
    用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的
     与网络相结合
    配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源
    作者简介 · · · · · ·
    Robert Sedgewick 斯坦福大学博士,导师为Donald E. Knuth,从1985年开始一直担任普林斯顿大学计算机科学系教授,曾任该系主任,也是Adobe Systems公司董事会成员,曾在Xerox PARC、国防分析研究所(Institute for Defense Analyses)和法国国家信息与自动化研究所(INRIA)从事研究工作。他的研究方向包括解析组合学、数据结构和算法的分析与设计、程序可视化等。
    Kevin Wayne 康奈尔大学博士,普林斯顿大学计算机科学系高级讲师,研究方向包括算法的设计、分析和实现,特别是图和离散优化。
    目录 · · · · · ·

    目录

    第1章  基础  1

    1.1 基础编程模型  4
    1.1.1 Java程序的基本结构  4
    1.1.2 原始数据类型与表达式  6
    1.1.3  语句  8
    1.1.4  简便记法  9
    1.1.5  数组  10
    1.1.6  静态方法  12
    1.1.7  API  16
    1.1.8  字符串  20
    1.1.9  输入输出  21
    1.1.10  二分查找  28
    1.1.11  展望  30
    1.2  数据抽象  38
    1.2.1  使用抽象数据类型  38
    1.2.2  抽象数据类型举例  45
    1.2.3  抽象数据类型的实现  52
    1.2.4  更多抽象数据类型的实现  55
    1.2.5  数据类型的设计  60
    1.3  背包、队列和栈  74
    1.3.1  API  74
    1.3.2  集合类数据类型的实现  81
    1.3.3  链表  89
    1.3.4  综述  98
    1.4  算法分析  108
    1.4.1  科学方法  108
    1.4.2  观察  108
    1.4.3  数学模型  112
    1.4.4  增长数量级的分类  117
    1.4.5  设计更快的算法  118
    1.4.6  倍率实验  121
    1.4.7  注意事项  123
    1.4.8  处理对于输入的依赖  124
    1.4.9  内存  126
    1.4.10  展望  129
    1.5  案例研究:union-find算法  136
    1.5.1  动态连通性  136
    1.5.2  实现  140
    1.5.3  展望  148

    第2章  排序  152

    2.1  初级排序算法  153
    2.1.1  游戏规则  153
    2.1.2  选择排序  155
    2.1.3  插入排序  157
    2.1.4  排序算法的可视化  159
    2.1.5  比较两种排序算法  159
    2.1.6  希尔排序  162
    2.2  归并排序  170
    2.2.1  原地归并的抽象方法  170
    2.2.2  自顶向下的归并排序  171
    2.2.3  自底向上的归并排序  175
    2.2.4  排序算法的复杂度  177
    2.3  快速排序  182
    2.3.1  基本算法  182
    2.3.2  性能特点  185
    2.3.3  算法改进  187
    2.4  优先队列  195
    2.4.1  API  195
    2.4.2  初级实现  197
    2.4.3  堆的定义  198
    2.4.4  堆的算法  199
    2.4.5  堆排序  205
    2.5  应用  214
    2.5.1  将各种数据排序  214
    2.5.2  我应该使用哪种排序算法  218
    2.5.3  问题的归约  219
    2.5.4  排序应用一览  221

    第3章 查找  227

    3.1 符号表  228
    3.1.1 API  228
    3.1.2 有序符号表  230
    3.1.3 用例举例  233
    3.1.4 无序链表中的顺序查找  235
    3.1.5 有序数组中的二分查找  238
    3.1.6 对二分查找的分析  242
    3.1.7 预览  244
    3.2 二叉查找树  250
    3.2.1 基本实现  250
    3.2.2 分析  255
    3.2.3 有序性相关的方法与删除操作  257
    3.3 平衡查找树  269
    3.3.1 2-3查找树  269
    3.3.2 红黑二叉查找树  275
    3.3.3 实现  280
    3.3.4 删除操作  282
    3.3.5 红黑树的性质  284
    3.4 散列表  293
    3.4.1 散列函数  293
    3.4.2 基于拉链法的散列表  297
    3.4.3 基于线性探测法的散列表  300
    3.4.4 调整数组大小  304
    3.4.5 内存使用  306
    3.5 应用  312
    3.5.1 我应该使用符号表的哪种实现  312
    3.5.2 集合的API  313
    3.5.3 字典类用例  315
    3.5.4 索引类用例  318
    3.5.5 稀疏向量  322

    第4章  图  329

    4.1  无向图  331
    4.1.1  术语表  331
    4.1.2  表示无向图的数据类型  333
    4.1.3  深度优先搜索  338
    4.1.4  寻找路径  342
    4.1.5  广度优先搜索  344
    4.1.6  连通分量  349
    4.1.7  符号图  352
    4.1.8  总结  358
    4.2  有向图  364
    4.2.1  术语  364
    4.2.2  有向图的数据类型  365
    4.2.3  有向图中的可达性  367
    4.2.4  环和有向无环图  369
    4.2.5  有向图中的强连通性  378
    4.2.6  总结  385
    4.3  最小生成树  390
    4.3.1  原理  391
    4.3.2  加权无向图的数据类型  393
    4.3.3  最小生成树的API和测试用例  396
    4.3.4  Prim算法  398
    4.3.5  Prim算法的即时实现  401
    4.3.6  Kruskal算法  404
    4.3.7  展望  407
    4.4  最短路径  412
    4.4.1  最短路径的性质  413
    4.4.2  加权有向图的数据结构  414
    4.4.3  最短路径算法的理论基础  420
    4.4.4  Dijkstra算法  421
    4.4.5  无环加权有向图中的最短路径算法  425
    4.4.6  一般加权有向图中的最短路径问题  433
    4.4.7  展望  445

    第5章  字符串  451

    5.1  字符串排序  455
    5.1.1  键索引计数法  455
    5.1.2  低位优先的字符串排序  458
    5.1.3  高位优先的字符串排序  461
    5.1.4  三向字符串快速排序  467
    5.1.5  字符串排序算法的选择  470
    5.2  单词查找树  474
    5.2.1  单词查找树  475
    5.2.2  单词查找树的性质  483
    5.2.3  三向单词查找树  485
    5.2.4  三向单词查找树的性质  487
    5.2.5  应该使用字符串符号表的哪种实现  489
    5.3  子字符串查找  493
    5.3.1  历史简介  493
    5.3.2  暴力子字符串查找算法  494
    5.3.3  Knuth-Morris-Pratt子字符串查找算法  496
    5.3.4  Boyer-Moore字符串查找算法  502
    5.3.5  Rabin-Karp指纹字符串查找算法  505
    5.3.6  总结  509
    5.4  正则表达式  514
    5.4.1  使用正则表达式描述模式  514
    5.4.2  缩略写法  516
    5.4.3  正则表达式的实际应用  517
    5.4.4  非确定有限状态自动机  518
    5.4.5  模拟NFA的运行  520
    5.4.6  构造与正则表达式对应的
    5.5  数据压缩  529
    5.5.1  游戏规则  529
    5.5.2  读写二进制数据  530
    5.5.3  局限  533
    5.5.4  热身运动:基因组  534
    5.5.5  游程编码  537
    5.5.6  霍夫曼压缩  540

    第6章  背景  558

    索引  611


    复习,刷题

    展开全文
  • 算法第四 课后习题答案

    万次阅读 多人点赞 2016-03-28 17:07:59
    算法第四 Eclipse EOF


    如果你是与JAVA相关方向的,可以看看这篇文章,相信对你会有所帮助: 点击打开链接


    算法(第四版) 第12次印刷

    感觉我真的是良心博主。。。。

    注意!!! :书上的过程图有些是比较坑的(非错误问题),比如P525的NFA并不是只执行了构造函数后的结果而是将构造函数和该类中的一个方法一起运行后的结果,比较坑,如果对书中算法有什么不懂的可以看看我写的注释(在Algorithms中),如果没有注释的要么是没必要,要么就是我也不会(比如红黑树的删除部分)


    关于终止Console继续读入流:

    书上有一些题目需要从console读取流并进行处理(我之前的代码都是直接用In类和命令行参数代替了),从console读取有个问题就是如何终止流的输入,如果不手动终止输入StdIn.isEmpty始终是false,这样后面的代码始终无法执行,Eclipse默认的EOF是ctrl+Z(在console输入完内容按完回车以后按ctrl+z(在console中)就会终止当前输入,StdIn.isEmpty为true),有个尴尬的问题是ctrl+z经常是无效的即你按了ctrl+z也不能终止流的输入,一开始我以为是快捷键的冲突导致的,结果改了以后仍是无效的,但我发现每次第一次启动eclipse后用ctrl+z终止流输入时有效的再次运行那个类就失效了,因此我想到的就是每次运行过一次以后就刷新(eclipse最左边建工程的地方点鼠标右键)要注意一点,你刷新的时候一定要选定那个类不要点在别的类刷新,这样是没用的,再次运行时EOF有效(可能会出现刷新一次后EOF仍然失效,再次刷新一次即可,在刷新之前一定要把当前运行的类终止,即console中红色的小正方形点一下变灰色)


    参考代码:点击打开链接


    Eclipse从控制台直接读取文件:

    比如你运行的类当前需要读取一个.txt的文件,而你不向想通过将内容复制到concole中读取或者通过命令行参数读取,而是想直接通过控制台读取并使用相应的方法,则可以通过这样设置达到目的:Run---->Run configurations--->




    这样点击运行的时候控制台什么都不要输入,直接EOF(不会看第一条),在读取比特流的时候采用console读取具体数据和从控制台直接读取.txt文件时有区别的,具体区别见下面的参考代码里的注释,这是针对数据压缩那里的内容,前面的自行测试

    参考代码:点击打开链接


    针对第五章第五节数据压缩算法的测试,基本思路将output定向到一个.txt文件中(如何定向看第二条),将压缩后的比特流保存到一个.txt的文件中,验证解压缩算法时,从.txt文件中读取比特流然后在控制台打印解压后的内容,具体操作看下面的图:首先新建一个用于保存比特流的.txt文件,我这里是a.txt,将文件放入具体的包中,

    然后将输出定向到该文件(看第二条),输出路径的设置:


    首先先点inputfile通过workspace找到a.txt这个文件,这时候将inputfule的路径复制下来作为outputfile的路径,取消inputfile前面的勾,在outputfile前面打勾,然后apply,直接运行,这样压缩后的比特流就保存到了a.txt文件中(会提示你刷新,刷新一下就行了),验证解压缩算法的时候就是将inputfile定向到a.txt文件

    参考代码:点击打开链接



    eclipse命令行参数使用:

    Run---->Run configurations----->右边 arguments 里写

    用空白字符区别不同的命令行参数:

    如:1 2 3    args.length=3

    123    args.length=1

    在命令行参数中读取测试用例 xxx.txt ,使用作者提供的jar包,参考书中205   我写的Algorithms/Number_2/Multiway

    比如我把 测试用例 m1.txt  m2.txt  m3.txt拷到了包Number_2下  则只需修改 working directory 为Number_2

     

     

    贴上我的GitHub地址,习题答案就在里面:

    https://github.com/xiaoyuzdy/Algorithms

    过几个月打算去找实习,题目会一直写,如果对你有帮助,觉得还不错,并且有github账户,麻烦给我个Star,这对我找工作很有帮助,十分感谢

    其中 Algorithms 为书中的一些算法还有就是一些作者自己写的API的使用

    AlgorithmsTest 为书中课后习题

    TestCase.zip 为书中需要用到的测试用例可使用迅雷下载

    再贴上GitHub上一个人写的:

    https://github.com/aistrate/AlgorithmsSedgewick/tree/master/1-Fundamentals

     

     

    展开全文
  • 算法(第四)下载

    千次阅读 2017-11-01 13:56:49
    算法(第四)下载
  • 算法 第4版 高清中文版,个人认为比算法导论适合学习,内容比算法导论易懂,适合初学者学习!
  • 5.3.3 Knuth-Morris-Pratt子字符串查找算法 496 5.3.4 Boyer-Moore字符串查找算法 502 5.3.5 Rabin-Karp指纹字符串查找算法 505 5.3.6 总结 509 5.4 正则表达式 514 5.4.1 使用正则表达式描述模式 514 ...
  • 算法 第4版 》是Sedgewick之巨著 与高德纳TAOCP一脉相承 是算法领域经典的参考书 涵盖所有程序员必须掌握的50种算法 全面介绍了关于算法和数据结构的必备知识 并特别针对排序 搜索 图处理和字符串处理进行了论述 ...
  • 算法 第4版 pdf

    2018-07-29 19:18:43
    链接:https://pan.baidu.com/s/14K_ZJ0JfZ9W6tk1DMn61cA 密码:dedu 本书为完整,以下为内容截图:  
  • 此文件包好了算法第4版所需要运行的标准库Std*库。编译文件(class文件),源代码(java代码)。由于上传内容不能超过60M后续。下载完成后留言给你分享algs4-data.zip文件
  • 算法 第4版 》是Sedgewick之巨著 与高德纳TAOCP一脉相承 是算法领域经典的参考书 涵盖所有程序员必须掌握的50种算法
  • 该资源是完整的,珍贵稀缺哦 百度网盘: https://pan.baidu.com/s/1CxoHKkahFNHAKxqvQSlOpg 提取码:p95n
  • 算法-第4版-完整版

    2018-03-18 12:36:11
    算法(第四) 目录: 第1章 基础 1 1.1 基础编程模型 4 1.1.1 Java程序的基本结构 4 1.1.2 原始数据类型与表达式 6 1.1.3 语句 8 1.1.4 简便记法 9 1.1.5 数组 10 1.1.6 静态方法 12 1.1.7...
  • 算法 第4版-完整中文扫描 带目录,书签 已使用abbyy处理生成的双层PDF,可进行文字标注和文字复制。
  • 年假之前,我就规定自己要完成多少多少的任务,要做一些些有意义的事情,读书,练习,输出一些有价值的文字和笔记正是这一理念的实现,这样不仅让自己的经历更...《算法第4版)》是一本晦涩的书,特别是中文版!...
  • https://segmentfault.com/a/1190000006880235?_ea=1201932
  • 算法 第 4 这是一本奇书,具体好在哪里,我没看完也没有什么可以说的。但是关于这本书的配置环境,还是值得一谈的。这本书使用了 algs4.exe 来一键安装所有的配置环境,这一点必须要点赞。可惜,我们在中国的...
1 2 3 4 5 ... 20
收藏数 5,509
精华内容 2,203
热门标签
关键字:

算法第4版