我正在学习算法的复杂性,我只是想验证我的理解是否正确。
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)
我说错了吗?
答案 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!)
如果主导部分是阶乘