算法导论第三版习题及答案

写在前面

一边看算法导论一边做题,把自己的答案记录下来一起交流,有不对之处欢迎指正。


仍在录入中


第 1 章

1.1-1

给出现实生活中需要排序的一个例子或者现实生活中需要计算凸包的一个例子。

按字典序排列列表,或按姓名首字母排序人名。

1.1-2

除速度外,在真实环境中还可能使用哪些其他有关效率的量度。

比如内存占用率、资源利用率等。

1.1-3

选择一种你以前已知的数据结构,并讨论其优势和局限。

以数组为例:
优点是 随机访问效率高,查找速度快
缺点是 插入及删除效率较低,必须连续内存空间,不能动态扩展

1.1-4

前面给出的最短路径与旅行商问题有哪些相似之处?又有哪些不同?

相似之处在于都是在图中找到一条路径。
不同之处在于最短路径只关心两地之间的路径,而旅行商问题得到返回第一个点的许多路径。

1.1-5

提供一个现实生活的问题,其中只有最佳解才行。然后提供一个问题,其中近似最佳的一个解也足够好。

还以姓名首字母排序为例,只有一种排列结果,同时也是最佳解。
以背包问题为例,使用贪心算法可得到一个足够好的解。

1.2-1

给出在应用层需要算法内容的应用的一个例子,并讨论涉及的算法的功能。

百度搜索一个词条的结果,其中涉及到多种算法,比如数据库的查找、结果的排序以及各种推荐的算法。

1.2-2

假设我们正比较插入排序与归并排序在相同机器上的实现。对规模为 n n n 的输入,插入排序运行 8 n 2 8n^{2} 8n2 步,而归并排序运行 64 n l g n 64nlgn 64nlgn 步。问对哪些 n n n 值,插入排序优于归并排序?

对两个函数比较可得,当规模 2 < = n < = 43 2<=n<=43 2<=n<=43时,插入排序优于归并排序。

1.2-3

n n n的最小值为何值时,运行时间为 100 n 2 100n^{2} 100n2 的一个算法在相同机器上快于运行时间为 2 n 2^{n} 2n 的另一个算法?

最小值为15的时候。

思考题 1-1


第 2 章

2.1-1

以图2-2为模型,说明INSERTION-SORT在数组 A = { 31 , 41 , 59 , 26 , 41 , 58 } A=\{31, 41, 59, 26, 41, 58\} A={ 31,41,59,26,41,58} 上的执行过程。

2.1-2

重写过程INSERTION-SORT,使之按非升序(而不是非降序)排序。

for j = 2 to A.length
	key = A[j]
	i = j - 1
	while i > 0 and A[i] < key
		A[i + 1] = A[i]
		i = i - 1
	A[i + 1] = key

2.1-3

2.1-4

ADD-BINARY(A, B):
  C = new int[A.length + 1]

  local carry = 0
  for i = 1 to A.length
      C[i] = (A[i] + B[i] + carry) % 2
      carry = (A[i] + B[i] + carry) / 2
  C[i] = carry

  return C

2.2-1

Θ \Theta Θ 记号表示函数 n 3 / 1000 − 100 n 2 − 100 n + 3 n^{3}/1000-100n^{2}-100n+3 n3/1000100n2100n+3

Θ ( n 3 ) \Theta(n^{3}) Θ(n3)

2.2-2

2.2-3

平均情况下会检查一半左右的元素,最坏情况下会检查所有元素,所以时间分别为 n / 2 n / 2 n/2 n n n ,都是 Θ ( n ) \Theta(n) Θ(n)

2.2-4

应如何修改任何一个算法,才能使之具有良好的最好情况运行时间?

通过对子问题使用更高效的处理方法。

2.3-1

使用图2-4作为模型,说明归并排序在数组 A = {

  • 11
    点赞
  • 136
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《算法导论》第三答案PDF是一本非常有价值的资料,其中包含了本书提出的各种算法问题的详细解答。这本答案PDF的编写者经过了严格的选择和考核,他们大都是计算机科学领域的权威专家和学者,拥有丰富的经验和深入的知识。 这本答案PDF主要分为三个部分,第一部分是对于算法的分析和设计,第二部分是算法基础和数据结构,第三部分是高级主题和高级算法。每一章节都有详尽的解答,从基本的数据结构,例如栈、队列和堆,到高级算法,例如线性规划和哈希表,每个问题都有详尽的解答,便于读者深入理解算法背后的原理和技巧。 该答案PDF还提供了大量的例子和练习题,让读者能够在学习过程中实时测试自己的理解和掌握程度。此外,该答案PDF还提供了许多实用的技巧、经验和应用场景,使读者能够更好地应用所学知识来解决实际的问题。 总的来说,《算法导论》第三答案PDF是一本非常有价值的资料,不仅能够帮助读者更加深入地理解算法的背后原理和技巧,还能够帮助读者应用所学知识来解决实际的问题。无论是计算机科学学生还是职业程序员,都可以从中受益匪浅。 ### 回答2: “算法导论第三答案 pdf”指的是《算法导论》这本书的答案解析。这本书是计算机科学领域中一本非常重要的教材,其内容涵盖了算法设计、算法分析和算法实现三个方面。 由于《算法导论》中的题目非常经典,因此很多读者都希望可以得到书中题目的答案解析,以便更好地理解和应用其中的算法知识。 目前,网络上可以找到一些《算法导论答案解析的PDF文档。这些文档通常由一些对该书有深刻理解的计算机科学专家或者学术界人士撰写。这些答案解析包括书中大部分习题的解答和讨论,能够帮助读者更加深入地掌握其中的算法知识。 然而,需要注意的是,仅仅阅读答案解析是远远不够的。为了真正掌握《算法导论》中的算法知识,读者需要通过反复的练习和实践来加深理解,甚至可以自己设计算法并实现其代码。只有这样,才能真正掌握算法知识,提高自己的编程能力。 ### 回答3: 算法导论第三答案 PDF是一本对算法导论第三中的习题进行详细解答的参考书籍。该书可以帮助读者更好地理解和掌握算法导论这本指导性书籍中包含的众多算法和数据结构。 这本答案集涵盖了算法导论第三中的全部习题,包括题目和答案。它涉及的主题包括渐进分析、排序和选择、数据结构(如堆、散列表、二叉搜索树等)、高级设计和分析技术(如贪心、动态规划、图算法和NP完备性)等。对于学习算法导论的人来说,这是一本非常有用的参考书。 此外,算法导论第三答案PDF还提供了对习题解答的分析和讨论,这可以帮助读者更好地理解解题的过程和思路。通过阅读该书,读者可以加深对数据结构和算法的理解,提高自己解决问题的能力。因此,如果您正在学习算法导论或者需要更加深入地掌握里面的知识,这本答案集将是您的一个绝佳资源。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值