这个简短代码的大O.

时间:2015-02-13 10:59:52

标签: javascript algorithm big-o time-complexity

我需要确定这个短代码的大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))左右的东西,但我不确定。你能帮我一点吗?

http://jsfiddle.net/qotbu5pq/2/

1 个答案:

答案 0 :(得分:3)

[评论回答]

  • 你几乎将操作除以5直到达到零结果
  • 所以不应该是~log5(N)次迭代,而是O(log(N))
  • 抱歉不想添加这么简单的答案......