【问题标题】:Big Oh notation higher than T(n)高于 T(n) 的大 Oh 符号
【发布时间】:2021-12-19 11:19:15
【问题描述】:

我刚刚学习了 Big-Oh 符号并看到了以下问题:

(1) Is T(n) = 10n^4 + 850n = O(n^3) ??
(2) Is T(n) = 10n^4 + 850n = O(n^4) ??
(3) Is T(n) = 10n^4 + 850n = O(n^30) ??

我已经理解 (1) Big-Oh 表示上限,因此它不能是 O(n^3),因此 (1) 是错误的。 同样,(2) 为真。

关于(3)。应该是真的吗?如果算法的 T(n) 是线性的,我们是否也可以用 O(n^2) 等表示它,因为 Big Oh 描述了上限?

【问题讨论】:

    标签: algorithm time-complexity complexity-theory


    【解决方案1】:

    从形式上讲,这是真的,是的。为了表示精确(“紧密”)的界限,使用了大 Theta (Θ) 概念,而大 Oh 允许复杂度低于所述的。 (如果问题要求你给出一个答案,那么他们可能意味着第二个。)

    【讨论】:

    • 不完全正确。可能存在没有 Θ 表示的函数(例如 N² 表示偶数 N,N³ 表示奇数 N)。对于这样的函数,紧边界是 O(N³) 和 Ω(N²)。
    • @YvesDaoust ,是的,但同样的函数适用于 O(N^30) 和 Omega(N),例如。当然,在实践中,我们通常对尽可能准确的边界感兴趣,但 Oh 和 Omega 的正式定义并不要求这样做
    • 如你所知,我在讨论严格的界限。 “为了表示精确(“紧密”)的界限,使用大 Theta (Θ) 概念是错误的。
    • @YvesDaoust ,我认为我们只是在这里使用不同的术语。我所说的“紧密界限”是一个表达式,它同时是给定函数的上限和下限,这就是 Theta 的定义。您的意思似乎更像是“f 的所有上限中的渐近最小”,这是另一个(可能)有效但不同的概念。根据this wikipedia page,你的意思经常用big Oh非正式表达,我在斜体注释中暗示了这一点。
    • 是的,我使用了紧,其含义与紧不等式中的含义相同。 Θ 在上面和下面都是隐式紧的,但即使有紧的界限它也可能不存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 2021-02-27
    相关资源
    最近更新 更多