这些功能的大O复杂性是否正确?

时间:2015-11-17 05:50:33

标签: algorithm big-o

我正在学习算法的复杂性,我只是想验证我的理解是否正确。

1) T(n) = 2n + 1 = O(n)

这是因为我们删除了常量2和1,我们留下了n。因此,我们有O(n)。

2) T(n) = n * n - 100 = O(n^2)

这是因为我们丢弃常数-100,并留下n * n,即n ^ 2。因此,我们有O(n ^ 2)

我说错了吗?

1 个答案:

答案 0 :(得分:1)

基本上你有那些不同的等级由"显性"功能因素,从最低的复杂性开始:

  • O(1)如果您的函数只包含常量
  • O(log(n))如果主要部分在log,ln ......
  • O(n^p)如果主导部分是多项式且最高权力是p(例如O(n^3) for T(n) = n*(3n^2 + 1) -3
  • O(p^n)如果主导部分是固定数字到n次幂(例如O(3^n) for T(n) = 3 + n^99 + 2*3^n
  • O(n!)如果主导部分是阶乘
  • 等......