线性复杂度O(20n)能否支配多项式复杂度O(n ^ 2/3)?

时间:2017-06-08 14:03:51

标签: algorithm time-complexity big-o complexity-theory

复杂度为O(n ^ 2/3)的算法图(多项式复杂度):

polynomial complexity

复杂度为O(20n)的算法图(线性复杂度):

linear complexity

不同复杂程度的优势顺序:

  

O(1)< O(logn)< O(n)< O(nlogn)< O(n ^ 2)< O(2 ^ n)<为O(n!)

问题: 如果我要在n^2/320n之上定义两种算法之间的优势顺序,我会对哪一种首先出现感到困惑。

根据不同复杂度的支配顺序,我看到多项式复杂度支配线性复杂度

订单1

  

O(n ^ 2/3)< O(20N)

但是从图表中我们可以看到,对于O(20n),操作次数与元素数量的增长率大于O(n^2/3)

订单2

  

O(20n)< O(n ^ 2/3)

我需要澄清订单1 订单2 中的订单是正确的。

1 个答案:

答案 0 :(得分:5)

O(n^b) ⊆ O(n^a) if b <= a

O(20*n) = O(n) = O(n^1)

O(n^(2/3)) ⊆ O(n^1)

关于polynomial time复杂性的几句话

  

如果某个非负整数O(n^k)完成给定输入算法所需的步数为k,则称算法在多项式时间内是可解的,其中n为输入的复杂性。

因此,具有O(20*n)O(n^(2/3))时间复杂度的算法都具有多项式时间复杂度。 “线性复杂度”只是多项式的一个子句。