【问题标题】:Solving for Big Theta Notation求解 Big Theta 表示法
【发布时间】:2012-05-11 09:57:35
【问题描述】:

我在解决大 theta 表示法时遇到了问题。我知道大 O 表示法表示最坏情况和上限,而 Omega 表示法表示最佳情况和下限。

如果给定一个运行时间为 O(nlogn) 和 Omega(n) 的算法,我将如何推断 Theta 等于多少?我开始假设当且仅当 O 和 Omega 相等时才存在 theta 符号,这是真的吗?

【问题讨论】:

标签: notation asymptotic-complexity


【解决方案1】:

假设您的算法在f(x) 中运行。

  • f(x) = O(n*log(n)) 表示对于足够高的x,有一些常量c1 > 0,因此f(x) 将始终小于c1*n*log(n)
  • f(x) = Omega(n) 表示对于足够高的x,有一些常量c2 > 0,因此f(x) 将大于c2*n
  • 所以你现在所知道的是,从某一点开始(x 足够大)你的算法将比c2*n 运行得更快,比c1*n*log(n) 慢。

  • f(x) = Theta(g(x)) 意味着对于足够大的x 有一些c3 > 0c4 > 0 以便c3*g(x) <= f(x) <= c4*g(x),这意味着f(x) 只会比g(x) 运行一个常数因子更快或更慢。确实如此,f(x) = O(g(x))f(x) = Omega(g(x))

    结论:仅给出 O 和 Omega,如果它们不相同,则无法得出 Theta 是什么。如果您有算法,您可以尝试看看是否可能选择了 O 太高,或者可能选择了 Omega 太低。

  • 【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      相关资源
      最近更新 更多