不是VIP会员,不能显示答案

题目解答

题目:
现在用如下代码来计算x^n,其时间复杂度为( )
double quick_power(double x,unsigned int n){
if (n==0) return 1;
if (n==1) return x;
return quick_power(x,n/2)*quick_power(x,n/2)*((n&1)?x:1);
}
  • A.O(n)
  • B.O(1)
  • C.O(logn)
  • D.O(nlogn)
考点: 0
分析:
解答: 正常快速幂的写法应只计算一遍x^(n/2),但此代码计算了两遍,所以时间复杂度要平方,根据对数公式计算时间复杂度为log(2^n)
计算完为O(n)
评论:
老师: 0