- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
大整数的乘法请设计一个有效的算法,可以进行两个n位大整数的乘法运算小学的方法:O(n2)?效率太低分治法:abcd复杂度分析T(n)=O(n2)?没有改进?X=Y=X=a2n/2+bY=c2n/2+dXY=ac2n+(ad+bc)2n/2+bd第29页,共73页,星期日,2025年,2月5日大整数的乘法请设计一个有效的算法,可以进行两个n位大整数的乘法运算小学的方法:O(n2)?效率太低分治法:XY=ac2n+(ad+bc)2n/2+bd为了降低时间复杂度,必须减少乘法的次数。XY=ac2n+((a-c)(b-d)+ac+bd)2n/2+bdXY=ac2n+((a+c)(b+d)-ac-bd)2n/2+bd复杂度分析T(n)=O(nlog3)=O(n1.59)?较大的改进?细节问题:两个XY的复杂度都是O(nlog3),但考虑到a+c,b+d可能得到m+1位的结果,使问题的规模变大,故不选择第2种方案。第30页,共73页,星期日,2025年,2月5日大整数的乘法请设计一个有效的算法,可以进行两个n位大整数的乘法运算小学的方法:O(n2)?效率太低分治法:O(n1.59)?较大的改进更快的方法??如果将大整数分成更多段,用更复杂的方式把它们组合起来,将有可能得到更优的算法。最终的,这个思想导致了快速傅利叶变换(FastFourierTransform)的产生。该方法也可以看作是一个复杂的分治算法,对于大整数乘法,它能在O(nlogn)时间内解决。是否能找到线性时间的算法???目前为止还没有结果。第31页,共73页,星期日,2025年,2月5日Strassen矩阵乘法A和B的乘积矩阵C中的元素C[i,j]定义为:若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i][j],需要做n次乘法和n-1次加法。因此,算出矩阵C的个元素所需的计算时间为O(n3)传统方法:O(n3)第32页,共73页,星期日,2025年,2月5日Strassen矩阵乘法使用与上例类似的技术,将矩阵A,B和C中每一矩阵都分块成4个大小相等的子矩阵。由此可将方程C=AB重写为:传统方法:O(n3)分治法:由此可得:复杂度分析T(n)=O(n3)?没有改进?第33页,共73页,星期日,2025年,2月5日Strassen矩阵乘法传统方法:O(n3)分治法:为了降低时间复杂度,必须减少乘法的次数。复杂度分析T(n)=O(nlog7)=O(n2.81)?较大的改进?第34页,共73页,星期日,2025年,2月5日Strassen矩阵乘法传统方法:O(n3)分治法:O(n2.81)更快的方法??Hopcroft和Kerr已经证明(1971),计算2个2×2矩阵的乘积,7次乘法是必要的。因此,要想进一步改进矩阵乘法的时间复杂性,就不能再基于计算2×2矩阵的7次乘法这样的方法了。或许应当研究3×3或5×5矩阵的更好算法。在Strassen之后又有许多算法改进了矩阵乘法的计算时间复杂性。目前最好的计算时间上界是O(n2.376)是否能找到O(n2)的算法???目前为止还没有结果。第35页,共73页,星期日,2025年,2月5日快速排序privatestaticintpartition(intp,intr){inti=p,j=r+1;Comparablex=a[p];//将=x的元素交换到左边区域//将=x的元素交换到右边区域while(true){while(a[++i].compareTo(x)0);while(a[--j].compareTo(x)0);if(i=j)break;MyMath.swap(a,i,j);}a[p]=a[j];a[j]=x;returnj;}初始序列{6,7,5,2,5,8}j--;{5,7,5,2,6,8}i++;{5,6,5,2,7,8}j--;{5,2,5
您可能关注的文档
最近下载
- 设计制作一个产生正弦波-方波-三角波函数转换器.doc VIP
- 选煤厂安全规程课件.ppt VIP
- The Institute of Internal Auditors 国际内部审计师协会 内部审计执行指南 2017 执行指南.pdf
- 借款合同借款合同.docx VIP
- 2018职业暴露应急演练记录..doc VIP
- 信息化项目安全保障措施.docx VIP
- 第十章 珍爱生命-心理危机干预与幸福人生 课件《大学生心理健康教育(第二版)》(高教版).pptx VIP
- 高等数学(一)(国防科技大学)中国大学MOOC慕课 期末考试客观题答案.pdf VIP
- 建伍TH-F6 F7中文说明书手册.doc VIP
- 残疾人社会工作教学课件 余艳萍 秦琴-第9章 残疾人个案工作模式及运用.pptx VIP
原创力文档


文档评论(0)