关于大整数的乘法 的时间复杂度 如何推导?

雨下晴川 2011-03-03 12:48:02
X和Y都是n位的大整数,利用小学所学的方法计算,则时间复杂度为O(n^2),但用分治思想可以减少乘法的次数,从而减少时间复杂度

X=A*2^(n/2)+B
Y=C*2^(n/2)+D

XY=AC*2^n+((A-B)(D-C)+AC+BD)*2^(n/2)+BD;
那么它仅需要3次n/2位整数的乘法,6次加减法和2次位移
则其时间复杂度T(n)=3T(n/2)+O(n)=O(n^log3); n>1时

这是王晓东编著的《算法设计与分析》(第二版)关于大整数乘法的算法,这个时间复杂度O(n^log3)是如何推导出来的
求高人解答~感激不尽

...全文
1751 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianyancao 2011-03-04
  • 打赏
  • 举报
回复
图灵机或者一般计算机的 单位指令,一条机器指令;

求 时间复杂度 就是计算 计算过程总共使用的 单位指令。
绿色夹克衫 2011-03-03
  • 打赏
  • 举报
回复
分治法的话,每次可以把4次乘法变为3次乘法和若干次加法,根据主定理可以推算出复杂度,另外lz可以自己假设一下,n=64的情况

[Quote=引用楼主 yeehong 的回复:]
X和Y都是n位的大整数,利用小学所学的方法计算,则时间复杂度为O(n^2),但用分治思想可以减少乘法的次数,从而减少时间复杂度

X=A*2^(n/2)+B
Y=C*2^(n/2)+D
[/Quote]
雨下晴川 2011-03-03
  • 打赏
  • 举报
回复
OK,找到主定理了,在书本27页……老师上课没讲……忽略过去了
雨下晴川 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 litaoye 的回复:]

分治法的话,每次可以把4次乘法变为3次乘法和若干次加法,根据主定理可以推算出复杂度,另外lz可以自己假设一下,n=64的情况


[/Quote]

不知道主定理是什么呢~?
FancyMouse 2011-03-03
  • 打赏
  • 举报
回复
这里log是以2为底,不能省的。
然后结果怎么出来的去看主定理的证明。
超级大笨狼 2011-03-03
  • 打赏
  • 举报
回复
复杂度推导,我也蛋痛

算法导论里推算快速排序NLogN我一直没看懂。
王晓东这书有空买来也看看。

我就会记住一些结论性的东西,然后简单的加减乘除取对数或次方等。
带T字样的推导,一概不明白。

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧