以下循环的(最坏情况)时间分析是什么?

时间:2014-04-26 07:35:44

标签: java time big-o analysis

以下是整数变量n的一些代码:

while (n > 0)     
    {         
        n = n/10; // Use integer division     
    } 

我试图找到这个循环的最坏情况时间分析。 O(n)对我来说是新的,我遇到了困难。这不就是O(n)吗?

1 个答案:

答案 0 :(得分:4)

实际上该算法将是O(log(n))。你除以10(每次通过循环敲掉0)。

一般来说,算法是O(n),如果它与n的大小成线性比例,但为此,如果你将n的大小增加10倍,你只需要多一次迭代,而不是10倍迭代循环。


根据要求,这里有几个简短的入门网站。快速谷歌搜索将会出现更多:

http://rob-bell.net/2009/06/a-beginners-guide-to-big-o-notation/ http://www.daveperrett.com/articles/2010/12/07/comp-sci-101-big-o-notation/