标签: math time-complexity
有一个项目,我应该实现功率算法(a,b)产生一个^ b,算法应该具有log(b)的复杂度(b是函数中的第二个输入数字)和算法也应该是非递归的。有人可以帮忙吗?
答案 0 :(得分:1)
想法是用正方形和乘法构造所需的乘法
让我们从一个具体的例子开始:7 ^ 13
13是二进制的1101
所以7*((7^2)^2*((7^2)^2)^2)=7^(1+4+8)=7^13
7*((7^2)^2*((7^2)^2)^2)=7^(1+4+8)=7^13
从算法:
时间复杂度与b的位数相同,即log(b)