算法第四版 课后习题答案

article/2025/9/15 22:05:30


如果你是与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

 

 


http://chatgpt.dhexx.cn/article/OiYnlGir.shtml

相关文章

《算法》第四版入门准备

刚看完CPrimer,再开始看《算法》第四版。 《算法》第四版用的是JAVA,第一次接触,花了一天时间在配置环境上,浪费了时间。 废话少说,介绍一下拿到《算法》这本书后要做的事情。 首先,去看官网的教程&…

算法第四版习题解答(1.3 Bags, Queues, adn Stacks)

前言 使用的是《算法》第四版英文版,主要是习题解答。 书中jar包的导入请戳:算法(第四版)中algs4.jar下载和使用 EXERCISES 1.3.1 public class FixedCapacityStackOfStrings {private String[] a; // stack entriespriv…

授人以渔:分享我的算法学习经验

前言 看到知乎上有很多人提问“怎么学习算法”?对于这个问题,我想我是非常有资格回答的,因为我不是计算机科班出身,工作几年后通过自学,不仅转行做了推荐算法,而且我的算法水平无论是在公司内部还是在网络上…

算法学习计划

学习计划 根据王红梅编著的《算法设计与分析》,读取每一章的内容,然后从乐扣上找对应的算法题,包含简单-中等-困难三种程度。尽量每两周能够完成一章。遇到一种类型的问题时,先自己想想解决方案,然后再看标准答案。 …

机器学习之算法

机器学习之算法 一、k-近邻算法(knn算法)1.算法原理2.算法参数3.示例:使用k-近邻算法进行分类4.示例:使用k-近邻算法进行回归拟合5.实例:糖尿病预测 二、线性回归算法1.单变量线性回归算法成本函数梯度下降算法模型优化…

算法学习路线

算法学习是一条漫长而又苦涩的道路。之所以漫长,是因为有关算法的学习是无穷无尽的,如果你不想经历程序员的35岁之劫难,那就要不断地学习算法,提高自己的不可替代性。之所以是苦涩,是因为算法更像是数学题,…

算法入门学习

算法 1. 算法1.1 什么是算法?1.2 算法的质量评价指标1.2.1 时间复杂度1.2.1.1 常见的时间复杂度量级(效率从高到低)1.2.1.1.1 常数阶O(1)1.2.1.1.2 对数阶O(log n)1.2.1.1.3 线性阶O(n)1.2.1.1.4 线性对数阶O(n * log n)1.2.1.1.5 平方阶O(n^…

算法学习的一些个人心得

目录 前言正文总结 前言 悟已往之不谏,知来者之可追。 正文 常规的经验贴呢,就是给学弟学妹推荐一些书单,然后写一写自己的刷题经历,最后推荐大家多打比赛,多做项目,多买一些网课。这是比较容易写的。 但…

算法学习指南:什么是算法?

解释算法的实现逻辑就像讲故事一样。算法会在普通的解决方案中引入新颖的思路或进行某种创新。在本文中,我们将讨论一个简单问题的几个解决方案,解释影响算法性能的一些因素。在这个过程中,我将介绍一些用于分析算法性能的技巧。这些技巧与算…

算法学习基础(一)

作为一名普通的二本学校,我在很早之前就有一个目标,那就是大学之后好好找一个软件开发工作。因此学习了很多的编程基础,不过近几天面试发现,技术官总是喜欢问你算法知识。编程语言不断变化,但是很底层的知识与算法密切…

算法学习(一)

算法第四版学习笔记–1.3 Bags, Queues and Stacks 前面120页都是Java基础,建议有Java基础的同学可以直接从120页开始学习,但是这里面的例子有用到algs4这个jar,需要稍微了解一下,影响不大,都是对JDK的一些封装。 In…

算法学习入门

14天阅读挑战赛 *努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!欢迎记录下你的那些努力时刻(算法学习知识点/算法题解/遇到的算法bug/等等),在分享的同时加深对…

什么是算法?如何学习算法?算法入门的学习路径

何为算法 简单的说,算法就是:解决问题的手段,并且是批量化解决问题的手段。 比如,我们想要从成都去北京,起点就是成都,终点就是北京。如何去?我们就可以称为算法。 因此选择不同的算法,那么虽然终点都是一样,但是性能以及效率就根据算法的优劣而决定的。因此,我们…

如何学习算法?

今天在群里刚好看到有人在讨论算法的问题,刚好自己曾经也有一个算法大神的梦,来说说自己对算法的理解。 算法怎么学?什么样程度才算把算法学透?算法学会了有什么用? 算法的学习是非常重要的,那算法学到什么…

突发!大连理工大学研三学生自杀,遗书曝光,研究生的压力应该谁来化解?...

点击上方“码农突围”,马上关注 这里是码农充电第一站,回复“666”,获取一份专属大礼包真爱,请设置“星标”或点个“在看” 来源:科研干货 10月13日,微博上一个名为“红烧土豆叶”的网友引起广大网友关注&a…

英雄算法学习路线

文章目录 零、自我介绍一、关于拜师二、关于编程语言三、算法学习路线1、算法集训1)九日集训2)每月算法集训 2、算法专栏3、算法总包 四、英雄算法联盟1、英雄算法联盟是什么?2、如何加入英雄算法联盟?3、为何会有英雄算法联盟&am…

算法如何学习?别想太多,两个字

文章目录 前言一、语言基础1、「 光天化日学C语言 」 二、刷题必读1、「 LeetCode零基础指南 」2、「 九日集训每日打卡 」 三、语言入门1、「 C语言入门100例 」 四、算法入门1、「 算法零基础100讲 」 五、算法进阶1、「 画解数据结构 」2、「 LeetCode算法题集汇总 」3、「 …

YOLOv5剪枝✂️| 模型剪枝实战篇

本篇博文所用代码为开源项目修改得到,且不适合基础太差的同学。 本篇文章主要讲解代码的使用方式,手把手带你实现YOLOv5模型剪枝操作。 文章目录 0. 环境准备1. 使用YOLOv5训练自己的模型2. 对训练好的模型进行稀疏训练3. 对稀疏训练后的模型进行剪枝4. 对剪枝后的网络模型微…

决策树——预剪枝和后剪枝

目录 简析 为什么要剪枝? 剪枝的基本策略 预剪枝 后剪枝 剪枝的优缺点 预剪枝的优缺点 后剪枝的优缺点 实现 数据集 剪枝前 预剪枝 分析 代码 简析 为什么要剪枝? “剪枝”是决策树学习算法对付 “过拟合” 的主要手段 可通过“剪枝”来…

网络剪枝通俗解释

论文链接:Learning Efficient Convolutional Networks through Network Slimming 视频链接:唐宇迪 基本思想 我们在模型生成通道数为[64,128,256,512]的特征图,但是这些特征图不一定都重要,我们希望能够体现特征图的主次之分&…