计算的是幂次,乘法中的每一个数都相同,
设f(a, n)表示a^n,则
若n=1,f(a, n)=a;
若n>1且为偶数,f(a, n) = f(a, n/2) * f(a, n/2);
若n>1且为奇数,f(a, n) = f(a, (n-1)/2) * f(a, (n-1)/2) * a.
T(n) = T(n/2) + O(1),解决的问题规模成倍减小,额外操作耗时又是常数,时间复杂度是O(logn),即二分查找。
设f(a, n)表示a^n,则
若n=1,f(a, n)=a;
若n>1且为偶数,f(a, n) = f(a, n/2) * f(a, n/2);
若n>1且为奇数,f(a, n) = f(a, (n-1)/2) * f(a, (n-1)/2) * a.
T(n) = T(n/2) + O(1),解决的问题规模成倍减小,额外操作耗时又是常数,时间复杂度是O(logn),即二分查找。