这段短代码的大O
Big O of this short code
我需要确定这个短代码的大 O:
var iterations = 0;
function operation(num){
iterations++;
if (num == 0) return 1;
return operation(Math.floor((num / 10) * 2));
}
var result = operation(1000);
alert('Result = ' + result + ', number of iterations = ' + iterations);
我想出了一些关于 O(log(logN))
的东西,但我不确定。你能帮我一下吗?
[来自评论的回答]
- 您几乎将运算除以 5,直到结果为零
- 所以不应该是
~log5(N)
次迭代,这意味着 O(log(N))
- 抱歉不想添加如此琐碎的答案...
我需要确定这个短代码的大 O:
var iterations = 0;
function operation(num){
iterations++;
if (num == 0) return 1;
return operation(Math.floor((num / 10) * 2));
}
var result = operation(1000);
alert('Result = ' + result + ', number of iterations = ' + iterations);
我想出了一些关于 O(log(logN))
的东西,但我不确定。你能帮我一下吗?
[来自评论的回答]
- 您几乎将运算除以 5,直到结果为零
- 所以不应该是
~log5(N)
次迭代,这意味着O(log(N))
- 抱歉不想添加如此琐碎的答案...