Big-O符号混淆

时间:2016-08-21 13:39:50

标签: algorithm math big-o calculus

在做这个问题时我遇到了一些困难。问题是:按照从最慢到最快的增长顺序对以下功能进行排序:

7n^3 − 10n, 4n^2, n, n^8621909, 3n, 2^(log log n), n log n, 6n log n, n!, 1.1^n

我对这个问题的回答是

  1. N,3n个
  2. nlogn,6nlogn
  3. 4n ^ 2(等于n ^ 2)
  4. 7n ^ 3 - 10n(等于n ^ 3)
  5. n ^ 8621909
  6. 2 ^ loglogn
  7. 1.1 ^ n(指数2 ^ 0.1376n)
  8. N!
  9. 只是想知道:我可以假设2^(loglogn)2^n的增长率相同吗?我应该将1.1^n作为常数吗?

2 个答案:

答案 0 :(得分:9)

  

只是想知道我可以假设2 ^(loglogn)具有相同的增长   2 ^ N?

没有。假设日志位于基数2,则2^log(n)在数学上等于n,因此2^(log(log(n)) = log(n)。当然,它与2^n没有相同的增长。

  

我应该将1.1 ^ n作为常数吗?

没有。 1.1^n仍然是n的指数,不可忽视 - 当然它不是常数。

正确的顺序是:

2^loglogn = log(n)
n,3n
nlogn, 6nlogn
4n^2
7n^3 – 10n
n^8621909
1.1^n
n!

我建议您查看Formal definition of the Big-O notation。但是,为简单起见,列表的顶部比较低的函数慢到无穷大 例如,如果您将其中两个函数放在图形上,您将看到一个函数最终将通过另一个函数,并且将更快地变为无穷大。

查看thisn^22^n进行比较。您会注意到2^n正在通过n^2并更快地进入无限 您可能还想查看this page中的图表。

答案 1 :(得分:4)

  1. 2 log(x) = x ,因此 2 log(log(n)) = log( n) 2 n 慢。

  2. 1.1 n 绝对不是常数。 1.1 n 倾向于无穷大,而一个常数显然不会。