- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]算法分析教材习题答案第2章
第2章
算法分析题2-2
分析与解答:
算法BinarySearch1与教材中的算法BinarySearch相比,数组段左右游标left和right的调整不正确,导致陷入死循环。
算法BinarySearch2与教材中的算法BinarySearch相比,数组段左右游标left和right的调整不正确,导致x=a[n-1]时返回错误。
算法BinarySearch3与正确算法BinarySearch5相比,数组段左右游标left和right的调整不正确,导致x=a[n-1]时返回错误。
算法BinarySearch4与正确算法BinarySearch5相比,数组段左右游标left和right的调整不正确,导致陷入死循环。
算法BinarySearch5正确,且当数组中有重复元素时,返回满足条件的最右元素。
算法BinarySearch6与正确算法BinarySearch5相比,数组段左右游标left和right的调整不正确,导致x=a[n-1]时返回错误。
算法BinarySearch7与正确算法BinarySearch5相比,数组段左右游标left和right的调整不正确,导致x=a[0]时陷入死循环。
算法分析题2-5
分析与解答:
这个问题有更一般的解。将两个?n位大整数u和v都分割为n/m位的m段,可以用2m-1次n/m位整数的乘法求得uv的值。
事实上,设x=2n/m,可以将u和v及其乘积w=vu表示为:
U=u0+u1x+…+um-1xm-1,v=vo+v1x+…+vm-1xm-1
W=uv=w0+w1x+w2x2+...+w2m-2x2m-2
将u,v?和…x2m-1,代入多项式,可得:
U(xi)=u0+u1x+…+um-1xm-1,V(xi)=vo+v1x+…+vm-1xm-1
W(xi)=u(xi)v(xi)= w0+w1x+w2x2+...+w2m-2x2m-2
?用… x12m-2 w0
w(x2) = 1 x2 x22 … x22m-2 w1
. . . . ... . .
W(x2m-1) 1 x2m-1 x2m-12 ... x2m-12m-2 w2m-2
设
B= ,则 =B-1
其中,W(xi)=u(xi)v(xi)是两个n/m位数的乘法去处,共有2m-1个乘法,其他均为加减法或数乘运算。
下面用m=3的具体例子来说明。
设x=2n/3,可以将u和v及其乘积w=uv表示为:
U= u0+u1x+u2x2 v=vo+v1x+v2x2
w= uv=w0+w1x+w2x2+ w3x3+ w4x4
取5个数 x1,x2,x3,x4,x5为x1=0,x2=-2,x3=2,x4=-1,x5=1。
代入多项式得:
a=w(x1)=u0v0
b=w(x2)=(u0-2u1+4u2)(v0-2v1+4v2)
c= w(x3)=(u0+2u1+4u2)(v0+2v1+4v2)
d= w(x4)=(u0-u1+u2)(v0-v1+v2)
e= w(x5)=(u0+u1+u2)(v0+v1+v2)
解得:
W0=a
W1=
W2=
W3=
W4=
X1,x2,x3,x4,x5的不同取法,可以得到不同的分解方法。
按此分解设计的求两个n 位大整数乘积的分治算法需要5次n/3 位整数乘法。分割及合并步所需的加减法和数乘去处的时间为O(n)。设T(n)是算法所需的计算时间,则
T(n)=
由此可得T(n)=O(nlog35)。
一般情况下,将两个n位大整数u和v都分割为长度为n/m的m段,可以用2m-1次n/m位整数的乘法求得uv的值。由此设计出的求两个n位大整数乘积的分治算法需要 2m-1次n/m位整数乘法。分割及合并步所需的加减法和数乘运算的时间为O(n)。因此其计算时间T(n)满足:
T(n)=
解此递归式可得:T(n)= O(nlogm(2m-1))。
算法分析题2-13
分析与解答:
Void mergesort(int a[],int left, int right)
{
If(leftright)
{ Int j=(int )sqrt(right-left+1);
If(j1)
{for(int i=0;ij;i++)
Mergesor
您可能关注的文档
- [演讲致辞]教育工作会议发言稿.doc
- [演讲致辞]文明礼仪知识竞赛主持词.doc
- [演讲致辞]晚会演讲稿.doc
- [演讲致辞]有效理答.doc
- [演讲致辞]村委会换届选举演讲稿-计生专干.doc
- [演讲致辞]改变自己.ppt
- [演讲致辞]枞阳脚步如此优雅.doc
- [演讲致辞]汉密尔顿.doc
- [演讲致辞]海闻:开启苦难辉煌的人生——在北京大学深圳研究生院2011年毕业典礼上的讲话.doc
- [演讲致辞]李开复-腾讯演讲PPT.ppt
- 2024-2025学年度怀化职业技术学院《形势与政策》期末考试检测卷及答案详解(典优).docx
- DB42T 1122-2015 绿色食品 杏鲍菇生产技术规程.docx
- DB42T 1073-2015 地理标志产品 神农百花蜜.docx
- DB42T 1024-2014 牛支原体肺炎诊断技术规程.docx
- DB42T 473-2021 早熟桃生产技术规程.docx
- DB42T 353-2011 地理标志产品 九资河茯苓.docx
- DB42T 350-2011 地理标志产品 来凤漆筷.docx
- DB42T 349.8-2015 武汉市主要行业取(用)水定额 第8部分:饮料制造.docx
- DB42T 1081-2015 湖北省土地整治工程量清单计价规范.docx
- DB42T 1010-2014 地理标志产品 老君眉茶.docx
文档评论(0)