首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间循环迭代的大O值

时间循环迭代的大O值
EN

Stack Overflow用户
提问于 2014-09-26 04:44:20
回答 1查看 101关注 0票数 1

给出以下程序的大O值

代码语言:javascript
复制
i=1
while ( i <= n ) {
    i = 2*i
}

通过绘制一个快速表,将I的值与每次迭代进行比较,我们可以看到:

如果n=5需要6次迭代

如果n=7我们需要8次迭代,等等.

所以我说:

我们需要多少次迭代,直到2^k >n(其中k是迭代次数)

代码语言:javascript
复制
 2^k > n
 log(2^k) > log(n)
 k > log(n)

原木的底座是2。

但我现在卡住了..。我怎么才能从这得到大人物呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 11:15:41

好吧,你已经有了答案。K告诉您最多需要多少次迭代。当您使用n,使用log(n)迭代时,您将结束循环。因此,该算法的渐近运行时间为O(log )。对数的基数并不重要,因为它只是一个常数:例如,ln = log(n)/log(e)。无论如何,在Big-O下您不会看到这个因素(在本例中是log)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26052207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档