【问题标题】:Big theta is in between big o and big omega or it is both big o and big omega? [duplicate]Big theta 介于 big o 和 big omega 之间,还是既是 big o 又是 big omega? [复制]
【发布时间】:2019-12-04 17:27:36
【问题描述】:

Big theta 表示它既是大 o 又是大欧米茄。据我了解,大 o 是上限,这意味着对于任何大输入,复杂性不应超过大 o,而大欧米茄则相反。 big theta 和 big o 和 big omega 有多大关系,这意味着如果我在图表中看到 big o 和 big omega 将是同一条线。或者换句话说,如果我们找到问题的解决方案,无论我们尝试的输入有多大或有多大,复杂性都是相同的。是这个意思吗?

【问题讨论】:

    标签: algorithm time time-complexity big-o


    【解决方案1】:

    对于两个函数f(n)和g(n),你有如下含义:

    • f(n) = O(g(n)) :这意味着存在一些常数 c>0,使得对于足够大的 n,f(n)
    • f(n) = Ω(g(n)) :这意味着存在一些常数 c>0,使得对于足够大的 n,f(n) > c*g(n)。通俗地说,“f 的增长速度不会比 g 慢”。
    • f(n) = Θ(g(n)) :这意味着存在一些常数 c_1>0 和 c_2>0 使得对于足够大的 n,c_1*g(n)

    所以你看到 Θ 确实是 O 和 Ω,因为如果 f 不比 g 增长快也不慢,那么它会以相同的速度增长(反之亦然)。

    【讨论】:

    • 因此,换句话说,只有当“Ω(g(n)) = O(g(n))”适用时,我们才写“f(n) = Θ(g(n))” ?
    • 啊,这是大 O 符号和使用“=”符号的坏处。我们在这里谈论的关系并不是真正的平等(它不是等价关系),你写的东西并没有真正的意义。 f(n) = O(g(n)) 最好写成 f(n) ∈ O(g(n)),这样会更有意义并防止这种错误。但是在 f(n) ∈ Θ(g(n)) 只有当 f(n) ∈ O(g(n)) 和 f(n) ∈ Ω(g(n)) 的情况下,你是部分正确的。
    • 是的,打字感觉很尴尬......而且你的澄清很好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多