- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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
                您可能关注的文档
最近下载
- 辽2002SJ802-2 厨房、卫生间垂直集中式排烟气系统.docx VIP
- 新闻摄影培训课件.pptx VIP
- 肾造瘘管相关知识.pptx
- 现场验收检查原始记录填写要求:(GB50300-2013附表及填写范例完整75组数据或描述).pdf VIP
- 2025年70岁以上老人考驾驶证三力测试题.pdf VIP
- 护理学基础各种注射法.pptx VIP
- 西游记中的乘法口诀(教学设计)-2024-2025学年二年级上册数学北师大版.docx VIP
- 护理事业十五五发展规划(2026-2030).docx
- 护理事业十五五(2026-2030)发展规划纲要.docx
- 青海省2025年中考语文真题试卷附同步解析答案.docx VIP
 原创力文档
原创力文档 
                        

文档评论(0)