关于大整数的乘法 的时间复杂度 如何推导?
雨下晴川 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)是如何推导出来的
求高人解答~感激不尽