对于大O符号,在2 ^ n或n ^ 2中占主导地位

时间:2016-01-08 23:42:42

标签: big-o

我一直在关注Big O符号并且遇到了操作计数2^n+n^2。我理解大O符号的做法是删除常量和低阶项,但是我无法弄清楚哪一个要O(n)。我认为它可能是2^n,但没有找到任何建议这一点的运气。

5 个答案:

答案 0 :(得分:4)

随着时间的推移,看看增长因素。对于n的前八个值,O(n^2)适用于:

0,1,4,9,16,25,36,49 ......

O(2^n)产生两个权力:

1,2,4,8,16,32,64,128 ......

应该相当明显哪一个增长得更快。

请注意,一般规则适用于不同的基数和指数。对于较小的O(1.1^n)O(n^10)最初的工作可能低于n,但指数大于1的指数增长最终将超过固定的指数多项式增长,因为n接近无穷大。

答案 1 :(得分:4)

按照L' Hopital的规则:

lim_{n -> infinity} (n^2 / 2^n )

= 1/log(2) lim_{n -> infinity} (2n / 2^n)

= 1/log(2)^2 lim_{n -> infinity} (2 / 2^n)

= 0

我们n^2 = o(2^n)暗示n^2 = O(2^n)

如果此证据没有意义:根据定义,f(n) = O(g(n)当且仅当f(n)g(n)增长后n的某个常数倍内有界时f(n) = o(g(n))经过一些不变的。考虑n的一种方法是,当g(n)增长到无穷大时,f(n)将继续快速增长f(n) = o(g(n))。换句话说:

  1. f(n)/g(n)当且仅当限制n变为零时o(g(n)变为无穷大。

  2. f(n) = O(g(n))a的严格条件。

  3. 或者,您只需要直接使用该定义:查找一些bn^2 <= a | 2^n |,使n >= b为所有x,这是一种简单的代数操作。

答案 2 :(得分:3)

2 ^ n占主导地位,因为它对于较大的n增长得更快。

答案 3 :(得分:3)

我非常喜欢 @ShadowRanger 对你问题的回答。但是,我想再展示一个问题。

如果您查看此图表,绿色部分为2^n,红色为n^2。如果你可以看到,行n^2开始增长的速度比2^n快,但随着你越来越大,行越过,2^n开始变得更大,更快。

因此,n-->∞(因为n非常大),2^n大于n^2enter image description here

答案 4 :(得分:2)

你的预感是正确的。

为证明这一点,我们必须表明:

2n_gte_n2all_n_gte_n0

使用归纳法,基本案例为n_eq_5

32_gte_25

现在假设n0符合不平等:

step1
step2
step3
step4

n0_gte_5的情况属实。

因此,conclusion