渐近界与运行时间之间的关系?

时间:2012-06-30 17:40:00

标签: algorithm complexity-theory big-o asymptotic-complexity

让我们以二进制搜索为例,最佳案例运行时间将在第一次比较时获得

  

key_to_find ==(imin + imax)/ 2;

最佳案例运行时间将由O(1)表示。我完全明白,但令我困惑的是为什么使用O(1)以及为什么我不能使用Θ(1)或任何其他符号。

即。如何识别我应该使用哪种表示法来表示运行时间(最佳,平均或最差情况)。

2 个答案:

答案 0 :(得分:2)

O符号和Θ符号与最佳情况,平均值或最差情况无直接关系。 它们用于函数的渐近边界。 你可以写: 47n lg n = O(n lg n), 3n ^ 2 + 4n = O(n ^ 2)

并且OaΘ表示法之间存在差异。 O表示“最多(使用某些常数因子)”,Θ表示“相等(使用某些常数因子)”,例如: 47n ln n = O(n ^ 2),但它不是Θ(n ^ 2)。

如果您想表达最佳案例,平均案例或最坏情况,您通常会明确地写出来: “最好的情况是O(1)(或Θ(1)),平均情况是O(lg n),最坏的情况是O(n)。”

有时你也“运行时间是O(x)”,那么你的意思是,运行时间最多与x成正比。如果你说“运行时间是Θ(x)”,那么你的意思是,运行时间总是与x成正比。

答案 1 :(得分:1)

您可以使用任何您想要的符号。 Big Theta是最精确的,所以你应该在你知道的时候使用它。作为旁注,O(1)在复杂性分析的上下文中等效于Θ(1)(其中操作的数量是整数,即,不能将O(1 / n)作为复杂度)。