算法导论第三版 第一章答案

【时间】2018.09.18

【题目】算法导论第三版第一章答案

【参考链接】https://ita.skanev.com/

 

一、练习1.1

 

练习1.1.1

给出一个需要排序的现实示例或需要计算凸包的真实示例。

排序的真实例子非常简单 - 例如,按字母顺序呈现列表的每个网页都需要对条目进行排序 - 目录,索引或其他任何内容。

我不知道为什么我们需要计算凸包,但维基百科说有很多应用程序。

 

【补充】:

a)排序:将一次考试中 500名考生的成绩按分数从高到低迕行排名。

b)确定多矩阵相乘的最佳顺序:某实验模型,需要计算 返 17个矩阵的积,根据矩阵乘法的结合律确定计算顺序,以达到计算乘法次数最少的目的。矩阵乘法的结合律:

c)找出凸壳:木板上钉了 21个钉子,以其中一些钉子为顶点组成的凸多边形可以包含所有 21个钉子,找出使凸多边形达到最小的所有钉子。

 

 

练习1.1.2

除了速度之外,在现实环境中可以使用哪些其他效率指标?

内存使用和资源利用(网络,数据库)是很好的答案。

 

 

 

 

练习1.1.3

选择您之前看到的数据结构,并讨论其优势和局限性。

我们来看看单链表。

优势:

  • 它不需要内存中的顺序空间

  • 我们可以在任何地方插入新元素

限制:

  • 随机访问是O(n)

  • 它需要额外的内存用于链接

 

练习1.1.4

上面给出的最短路径和旅行商问题如何相似?他们有什么不同?

它们是相似的,因为每个人都必须走一个图并在其中找到一条路径。

不同之处在于对解决方案的约束。最短路径仅需要两点之间的路径,而旅行推销员需要在返回第一点的更多点之间的路径。

 

 

练习1.1.5

想出一个现实世界的问题,只有最好的解决方案才能解决。然后提出一个“近似”最好的解决方案就足够了。

对目录进行排序是一个问题,只有最佳解决方案才能实现。“近似”排序的目录不会那么有用。

找到一个城市中两点之间的最短路径是一个问题,在那里可以做得足够好。它可能不是最快的方式,但你仍然会到达那里。

 

 

二、练习1.2

 

练习1.2.1

举例说明在应用程序级别需要算法内容的应用程序,并讨论所涉及的算法的功能。

在两个地方之间找到路线时的Google地图。

算法是此用例的重要组成部分,因为路由是用户最关心的。

 

 

练习1.2.2

假设我们在同一机器上比较插入排序和合并排序的实现。对于大小为n的输入,插入排序以8n2步运行,而合并排序运行在64 nlgn步骤中。对于哪个值,插入排序优于合并排序?

在n>43处,合并排序优于插入排序。

 

 

 

练习1.2.3

在同一台机器上,运行时间为100 n^2的算法比运行时间为2^n的算法跑得更快,那么n的最小值是多少?

在n>14时,第一个算法运行得更快。

 

 

三、思考题

 

对于下表中的每个函数f(N)和时间t,确定可以在时间t中解决的问题的最大大小n,假设求解该问题的算法需要f(N)微秒。

【PS】指数部分采用的是科学计数法

 

 

 

 

 

 

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值