算法导论(第三版)第一章习题答案

算法导论(第三版)第一章习题答案

这个专栏主要是将算法学习过程中使用的《算法导论》一书的练习题的答案进行汇总,有一部分习题答案可能是我自己做的或者是从网上搜集的,难免会存在错误的地方,希望能得到大家的指正。因为这是初次接触算法,所以后续的章节更新会比较慢,并且可能会出现很多我做不出来的题目,但是会我尽量坚持下去,每天看两页书。码字不易,如果对你有用希望能点个赞,如果有问题欢迎在评论区讨论。

1.1 算法

1-1

生活中需要排序的例子有很多,比如名次,成绩,身高统计等等。

凸壳问题:

令S为平面上的一个点集,封闭S中的所有顶点的最小凸多边形也成为S的凸壳。

在地上放置一些不可移动的木桩,用一根绳子把他们全部围起来,并且绳子的轮廓为凸边形。

1-2

存储空间占用情况,答案精确度等。

如果单指效率还有功率,转化率等等度量单位。

1-3

链表:优势在于可以较快的实现结点的插入删除等操作,但是在链表的尾部插入,或者随机读取链表中的元素时会比较麻烦。

1-4

相似之处:都需要寻找到一个最短路线

不同之处:最短路径(交通)问题需要找的时两个点之间的最短距离,并不要求经过其他点。旅行商问题要求在经过所有点的同时,走最短路径。

1-5

暂时想不到有什么好的例子。以后做题如果发现了如果还记得会回来补充。其实问题1-4在一定程度上可以作为本题的答案,比如旅行商问题我们往往得出近似的最优解即可。

1.2 作为一种技术的算法

2-1

一个播放器想在接下来像按照顺序给使用者依次播放他喜欢的音乐。

利用排序算法对使用者的听歌次序进行排序,并且得到排序后的序列并依次播放这些音乐。

2-2

要求插入排序优于归并排序,相当于要求: 8 n 2 < 64 n l o g 2 n 8n^2<64nlog_2n 8n2<64nlog2n

整理有 n < 8 l o g 2 n n<8log_2n n<8log2n

因此只要满足上述公式的n的数字,都时插入排序优于归并排序的解,其中 n < 43 n<43 n<43

2-3

根据题目要求,我们可以得到如下公式: 100 n 2 < 2 n 100n^2<2^n 100n2<2n

因为上述题目需要的时最小解,通过枚举我们可以得出 n = 15 n=15 n=15

思考题

1秒钟1分钟1小时1天1月1年1世纪
2 1000 2^{1000} 21000 2 6 × 1 0 4 2^{6\times10^4} 26×104 ∝ \propto ∝ \propto ∝ \propto ∝ \propto ∝ \propto
1 0 6 10^6 106 3.6 × 1 0 9 3.6\times10^9 3.6×109 1.296 × 1 0 13 1.296\times10^{13} 1.296×1013 ∝ \propto ∝ \propto ∝ \propto ∝ \propto
100060000 3.6 × 1 0 5 3.6\times10^5 3.6×105 8.64 × 1 0 6 8.64\times10^6 8.64×106 2.592 × 1 0 7 2.592\times10^7 2.592×107 3.1104 × 1 0 8 3.1104\times10^8 3.1104×108 3.1104 × 1 0 10 3.1104\times10^{10} 3.1104×1010
1414896-----
3124418979295509111763631763632
10391534421373314414597
10162227323542
78911121315

上述中由于对数不太好算,故该行跳过,这里只需要了解不同的时间复杂度在处理效率随时间的变化情况,同时月份是按照30天来进行计算。

接下来以其中一个为例:

1秒钟为1000 ms,如果想要计算一秒钟的能处理的问题的规模,那么有

n ! < 1000 n!<1000 n!<1000,可以得出 n < 8 n<8 n<8,因此最大能够处理的规模为7。其他的计算规模依次类推,可以在网上找阶乘计算器或者对数计算器,方便得出结果。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
算法导论第三版中文版 pdf高清版 在有关算法的书中,有一些叙述非常严谨,但不够全面;另一些涉及了大量的题材,但又缺乏严谨性。算法导论第三版中文版将严谨性和全面性融为一体,深入讨论各类算法,并着力使这些算法的设计和分析能为各个层次的读者接受。全书各章自成体系,可以作为独立的学习单元;算法以英语和伪代码的形式描述,具备初步程序设计经验的人就能看懂;说明和解释力求浅显易懂,不失深度和数学严谨性。全书选材经典、内容丰富、结构合理、逻辑清晰,对本科生的数据结构课程和研究生的算法课程都是非常实用的教材,在IT专业人员的职业生涯中,算法导论第三版也是一本案头必备的参考书或工程实践手册。 第3版的主要变化 1、新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录。 2、修订了递归式(现在称为“分治策略”)那一章的内容,更广泛地覆盖分治法。 3、移除两章很少讲授的内容:二项堆和排序网络。 4、修订了动态规划和贪心算法相关内容。 5、流网络相关材料现在基于边上的全部流。 6、由于关于矩阵基础和Strassen算法的材料移到了其他章,矩阵运算这一章的内容所占篇幅更小。 7、修改了对Knuth-Morris-Pratt字符串匹配算法的讨论。 8、新增100道练习和28道思考题,还更新并补充了参考文献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值