考研复习资料大汇总.pptVIP

  • 2
  • 0
  • 约7.99千字
  • 约 42页
  • 2023-04-25 发布于重庆
  • 举报
分治法——大整数的乘法 请设计一个有效的算法,可以进行两个n位大整数的乘法运算 小学的方法:O(n2) ?效率太低 分治法: X = Y = X = a 2n/2 + b Y = c 2n/2 + d XY = ac 2n + (ad+bc) 2n/2 + bd a b c d 复杂度分析 T(n)=O(n2) ?没有改进 第一页,共四十二页。 分治法——大整数的乘法 请设计一个有效的算法,可以进行两个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种方案。 第二页,共四十二页。 分治法——循环赛日程表 设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一

文档评论(0)

1亿VIP精品文档

相关文档