首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何不用代码计算时间复杂度

如何不用代码计算时间复杂度
EN

Stack Overflow用户
提问于 2018-04-18 10:11:40
回答 1查看 49关注 0票数 0

我必须证明(^正在崛起):

  1. n^2 = O(2^n)
  2. n^2 = Θ(2^n)
  3. 8^n = O(4^n)
  4. 8^n = Ω(4^n)

是否有一种理论方法总是可以知道它是还是false,并给出了演示?

EN

回答 1

Stack Overflow用户

发布于 2018-04-18 10:59:46

这些是极限计算问题:

代码语言:javascript
复制
f(n) = O(g(n))   if and only if      lim (f(n)/g(n)) = 0
                                       n -> +inf

f(n) = Θ(g(n))   if and only if      lim (f(n)/g(n)) = some positive finite number
                                       n -> +inf 

f(n) = Ω(g(n))   if and only if      lim (f(n)/g(n)) = +inifinity
                                       n -> +inf 

或者,倒过来

代码语言:javascript
复制
Let x = lim(f(n)/g(n))
          n -> +inf

x = 0 ?                          then f(n) = O(g(n))
x = some postive finite number ? then f(n) = Θ(g(n)) 
x = +infinity ?                  then f(n) = Ω(g(n))

因此,我们必须计算极限,例如在第一种情况下:

代码语言:javascript
复制
 lim(n^2/2^n) = 0 (apply l'Hospital's rule twice)
   n -> +inf 

这就是为什么n^2 = O(2^n)等:

代码语言:javascript
复制
 n^2 = O(2^n)  - true
 n^2 = Θ(2^n)  - false, in fact O(2^n)
 8^n = O(4^n)  - false, in fact Ω(2^n) 
 8^n = Ω(4^n)  - true
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49897036

复制
相关文章

相似问题

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