【问题标题】:Can linear complexity O(20n) dominate polynomial complexity O(n^2/3)?线性复杂度 O(20n) 能否支配多项式复杂度 O(n^2/3)?
【发布时间】:2017-06-08 14:03:50
【问题描述】:

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

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

不同复杂度的支配顺序:

O(1)

问题: 如果我要在n^2/320n 以上的两个算法之间定义一个优势顺序,我会不知道哪个算法会先出现。

根据不同复杂度的优势顺序,我发现多项式复杂度优于线性复杂度

订单 1

O(n^2/3)

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

订单 2

O(20n)

我需要澄清一下 Order 1Order 2 中的哪个顺序是正确的。

【问题讨论】:

  • 分数幂不在多项式类中(正如您刚刚确定的那样)
  • 我投票结束这个问题,因为它似乎纯粹是一个Mathematics 问题。
  • 对于 n >= 1,n^(2/3)

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


【解决方案1】:

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 复杂性的几句话

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-13
    • 1970-01-01
    • 2010-11-01
    • 2021-04-14
    • 2022-01-20
    • 2019-12-09
    相关资源
    最近更新 更多