【问题标题】:Which of the following efficiency functions belong to O(n3)? [closed]以下哪个效率函数属于 O(n3)? [关闭]
【发布时间】:2021-02-07 03:37:24
【问题描述】:

我对这里的正确答案感到困惑:

以下哪个效率函数属于O(n3)?

  (a) 2n2+10n+100
(b) 3n3+9
(c) n+100
(d) 5n3+2n2+4n+1

答案:

      ✅ 全部
??? (b) 和 (d)
??? (a) 和 (c)
???没有

选项a和c怎么也正确?

【问题讨论】:

  • 我们只取方程中的最高指数并丢弃其余的以及任何常数。 O(7n) 就是 O(n)。而O(7n^2 +6n) 就是O(n^2)
  • (c) 是唯一的 O(n)。 (a) 和 (c) 都是 O(n^2)。它们都是 O(n^3)。它们都是 O(n^4)。 Big-O 是任何增长速度与给定函数一样快或更快的函数。这不是一个严格的上限,它只是一个上限。
  • 请不要张贴文字图片。键入文本并使用可用的格式选项。
  • 取大 O 的数学定义,看看它如何应用于案例 a 和 c。大 O 的大多数初学者问题往往是仅部分正确的经验法则的应用,而不是依赖于实际定义。

标签: algorithm data-structures time-complexity big-o


【解决方案1】:

您需要回答这个问题的关键事实是,大 O 给出了一个上限,而不一定是一个界。

所以例如f(n) = n属于O(n),也属于O(n100).

还有另一个概念,叫做大 Theta,这可能是您的想法。请参阅Wikipedia 上的符号列表:

  • f(n) = O(g(n))  |大 O      | |f|以 g 为界(直到常数因子)渐近
  • f(n) = Θ(g(n))大西塔 | f 上下均由 g 渐近界

如果问题是“哪些函数属于 Θ(n3)”,那么确实只有回答“(b) 和 (d)”是正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    相关资源
    最近更新 更多