Theta表示法的简单英文解释?

时间:2012-09-08 17:18:24

标签: algorithm computer-science complexity-theory notation

Theta符号的简单英文解释是什么?尽可能少的正式定义和简单的数学。

theta符号与Big O符号有何不同?有人能用简单的英语解释吗?

在算法分析中如何使用?我很困惑?

2 个答案:

答案 0 :(得分:4)

如果算法的运行时间是Big Theta(f(n)),则它在f(n)上方和下方渐近有界。 Big O是相同的,除了绑定仅在上面。

直观地说,Big O(f(n))说“我们可以确定,忽略常数因子和术语,运行时间永远不会超过f(n)。”粗略地说,如果你认为运行时间“糟糕”,那么Big O就是最糟糕的情况。 Big Theta(f(n))说“我们可以肯定,忽略常数因子和术语,运行时间总是随f(n)变化。”换句话说,Big Theta是一个众所周知的紧张局限:它既是最坏的情况,也是最好的情况。

直觉的最后尝试:大O是“片面的”。 O(n)运行时间也是O(n ^ 2)和O(2 ^ n)。 Big Theta不是这样。如果你的算法运行时间是O(n),那么你已经有一个证明它不是Big Theta(n ^ 2)。它可能是也可能不是Big Theta(n)

一个例子是比较排序。信息理论告诉我们排序需要至少上限(n log n)比较,并且我们实际上发明了O(n log n)算法(其中n是比较次数),因此排序比较是Big Theta(n log n)。 / p>

答案 1 :(得分:1)

我一直想用简单的话来说明这一点。这是我的尝试。

如果算法的时间或空间复杂度用

表示
  • Big O:Ex O(n) - 表示n是上限。最终价值可能小于或等于n。

  • Big Omega:ExΩ(n) - 表示n是下限。最终价值可能等于或大于n。

  • Theta:ExΘ(n) - 表示n是唯一可能的值。 (上限和下限)