算法导论第一章练习参考答案(1) - 1.1-1.2

写在前面:算法导论的课后练习是很不错的练习,在网上找答案对照时,碰上很多给出略的解答。终于找到一份又详细又精确的答案,是来自两位谷歌工程师的解答。在翻译看懂他们答案的同时,想着为啥不直接把答案好好翻译一遍分享出去呢。而且能发现,这两位大牛的答案不仅详细,里面的回答与我的想法有着很大的不同,转而言之,这也很好的拓展了我的视野和想法。有一些答案思考的十分有新意,例如,在思考一个在现实生活只有最佳解的例子时,答案给了跟踪恐怖嫌疑人的例子,十分的有想法。当然练习没有唯一的答案,只是对二人的解答十分感兴趣,而且所有问题都能得到解答,于是顺便干起翻译的工作,而且里面二人给的伪代码,图表等是真的标准和美观。

译自Michelle Bodnar与Andrew Lohr

 

 两位都是谷歌的软件工程师,给出的答案的想法特别有意思!

答案网址在

https://sites.math.rutgers.edu/~ajl213/CLRS/CLRS.html

CLRS Solutions (rutgers.edu)

问题

解答

Exercise 1.1-1

需要排序的现实情况的一个示例是,如果您希望跟踪一堆人的文件夹并能够快速查找给定的名称。

如果你需要用围栏保护野生动物保护区,并且必须包含一堆特定的筑巢地点,那么凸壳可能就需要了

Exercise 1.1-2

可以测量算法的内存使用情况,或者执行单个任务所需的人员数量。

Exercise 1.1-3

一个数组。它的限制是在调整大小、插入和删除元素时需要大量复制。

Exercise 1.1-4

它们是相似的,因为这两个问题都可以用加权边,包括最小化图上行走的距离或权重。

它们的不同之处在于,最短路径问题只考虑两个顶点,而旅行推销员问题考虑最小化一条路径的权值,这条路径必须包含许多顶点,并在起点处结束。

Exercise 1.1-5

例如,如果你在跟踪恐怖监视嫌疑人,它偶尔会对一个人是否在名单上做出错误的决定,这是不可接受的。对于驾车的最短路线只有一个近似解是可以的,多开一点车也没那么糟。


问题 

解答 

Exercise 1.2-1

一个程序可以挑选出用户接下来想听的音乐。他们需要从历史和流行偏好中获取一堆信息,以实现最大化。

Exercise 1.2-2

我们希望确定不等式8*n^2 < 64*n*log2^(n)对n的哪个值成立。当n < 8*log2^(n)或n≤43时,就会出现这种情况。换句话说,当我们最多排序43个元素时,插入排序运行得更快。否则归并排序会更快。

Exercise 1.2-3

我们想要100*n^2 < 2^n,注意如果n = 14,这就变成了100*(14)^2 = 19600 > 2^14 = 16384。对于n = 15,它是100*(15)^2 = 22500 < 2 ^5 = 32768。所以答案是n = 15。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值