我遇到了一个例子,想计算这个代码的顺序(时间复杂度)。希望有人能帮助我理解如何计算此代码的顺序:

f(n)
{
    i=0;
    while (n>0) {
        n=n/10;
        i=i+1;
    }
    return (i);
}

实际上,我认为顺序是O(n/10)有什么专家可以帮我吗?

最佳答案

时间复杂度O(log n)因为每次迭代n除以10。
Master theorem证明:在您的情况下,a = 1b = 10c = log(a) = 0k = 0,所以T(n)=O(log n)

关于algorithm - 一个基本示例的时间复杂度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25673028/

10-11 07:39
查看更多