第2章 递归与分治.pptVIP

  • 3
  • 0
  • 约1.27万字
  • 约 48页
  • 2019-07-20 发布于山东
  • 举报
大整数的乘法 请设计一个有效的算法,可以进行两个n位大整数的乘法运算 小学的方法:O(n2) ?效率太低 分治法: XY = ac 2n + (ad+bc) 2n/2 + bd 为了降低时间复杂度,必须减少乘法的次数。 XY = ac 2n + ((a-b)(d-c)+ac+bd) 2n/2 + bd XY = ac 2n + ((a+b)(d+c)-ac-bd) 2n/2 + bd 复杂度分析 T(n)=O(nlog3) =O(n1.59)?较大的改进 细节问题:两个XY的复杂度都是O(nlog3),但考虑到a+c,b+d可能得到m+1位的结果,使问题的规模变大,故不选择第2种方案。 大整数的乘法 请设计一个有效的算法,可以进行两个n位大整数的乘法运算 小学的方法:O(n2) ?效率太低 分治法: O(n1.59) ?较大的改进 更快的方法?? 如果将大整数分成更多段,用更复杂的方式把它们组合起来,将有可能得到更优的算法。 最终的,这个思想导致了快速傅利叶变换(Fast Fourier Transform)的产生。该方法也可以看作是一个复杂的分治算法。 2.5 Strassen矩阵乘法 A和B的乘积矩阵C中的元素C[i,j]定义为:  若依此定义来计算A和B的乘积矩阵C,则每计

文档评论(0)

1亿VIP精品文档

相关文档