function calculatePower(k,n) {
var power = 1;
for(var i =0;i<n;i++) {
var tempPower = 0;
for(var j=0; j<k;j++) {
for(var q=0; q<power; q++) {
tempPower++;
}
}
power = tempPower;
}
return power;
}
calculatePower(2,3);
我将如何计算此类运行时间?是O(k + k ^ 2 + .... + k ^ n)或O(k ^ n)的行吗?
答案 0 :(得分:1)
由于tempPower
将在0
的每个迭代中被初始化为i
,因此每个迭代将等于k*power
。因此,power = k*power
和代码的时间复杂度将为T(k,n) = k + k^2 + k^3 + ... + k^n = k^{n+1} - 2 = Theta(k^{n+1})
。