算法第二章习题.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章习题 证明当时,任何多项式属于集合 解:0 所以 对于下列每一种函数,指出它们属于哪一种类型(尽量使用最简单的g(n)),并给出证明。 a. b. c. d. e. 解: a. 所以 b. 所以 c. 由于,。显然,当n 时,nlgn,所以 d. 由于,。显然,当n 时,,所以 e. +1, 又,+1 所以 写出下列表达式的结果: a. b. c. a.解: b.解:c.解: 计算增长次数(即写出下列和的) a. b c d 解:a. b. c. d. 的采样方差n可以这样计算: ,其中 或者 根据每个公式,对求方差时需要用到的除法、乘法和加/减运算的次数进行计算和比较。 解:第一个公式: 除法:2次, 乘法:n次, 加/减法:3n-1次 第二个公式:除法:2次, 乘法:n+1次, 加/减法:2n次 考虑下面的算法 算法 secret(A[0..n-1]) //输入:包含n个实数的数组A minval ( A[0]; maxval ( A[0] for i ( 0 to n-1 do if A[i] minval minval ( A[i] if A[j] maxval maxval ( A[i] return maxval-minval 对于本算法,试回答下述问题: 该算法求的是什么? 它的基本操作是什么? 该基本操作执行了多少次? 该算法的效率类型是什么? 对该算法进行改进,若不可能,试证明之。 解:1)数组中最大的元素与最小元素之差 2)比较大小 3)2n次 4) 5) 可以使用 if A[i] minval minval ( A[i] else if A[j] maxval maxval ( A[i] 替换 if A[i] minval minval ( A[i] if A[j] maxval maxval ( A[i] 在输入并非最糟糕的情况下,能在一定程度上提升算法的效率。 已知算法GE如下: 算法GE(A[0..n-1, 0..n]) // 输入: 一个n行n+1列的实数矩阵A for i (0 to n-2 do for j ( i+1 to n-1 do for k ( i to n do A[j,k] ( A[j,k] – A[i,k] * A[j,i]/A[i,i] 试问: 该算法的时间效率类型 该算法有何性能缺陷,试改进之。 解:1)将循环最内层的A[j,k] ( A[j,k] – A[i,k] * A[j,i]/A[i,i]中的乘法M(n)或除法D(n)作为基本操作 M(n)=D(n) = 故该算法的时间效率类型为 2)由于在最内层循环A[j,k] ( A[j,k] – A[i,k] * A[j,i]/A[i,i]中,A[j,i]/A[i,i]并不包含最内层循环变量k。所以我们可以使用temp= A[j,i]/A[i,i], A[j,k] ( A[j,k] – A[i,k] * temp来减少除法的操作次数。 求解下列递归关系 x(n)= 3x(n-1),其中n1,x(1)=4 x(n)= x(n/3)+ n,其中n1,x(1)=1(给出n=3k的情况求解) x(n)= 4x(n-1) + x(n-2) - 4,其中n=0, x(0)=0, x(1)=1。 解:1)x(n) = 3x(n ? 1) = 3[3x(n ? 2)] = 32x(n ? 2) = 32[3x(n ? 3)] = 33x(n ? 3) = … = 3ix(n ? i) = ... = 3n?1x(1) = 4·3n?1. 2)x(n) = x(n/3) + n for n 1, x(1) = 1 (solve for n = 2k) x(3k) = x(3k?1) + 3k = [x(3k?2) +3k?1] + 3k = x(3k?2) + 3k?1 +3k = [x(3k?3) + 3k?2] + 3k?1 + 3k = x(3k?3) + 3k?2 +3k?1 +3k = ... = x(3k?i) + 3k?i+1 +3k?i+2 + ... + 3k = ... = x(3k?k) + 31 + 32 + ... + 3k =

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档