Big o O(1)和Θ;(1)?

Big o O(1)和Θ;(1)?,big-o,complexity-theory,Big O,Complexity Theory,我知道这两个词的定义,但为什么有时我会在教科书中看到O(1)和其他时间的Θ(1) 谢谢。大θ表示法表示渐近上界,而大θ表示法另外表示渐近下界。通常,上界是人们感兴趣的,所以他们写O(某物),即使θ(某物)也是真的。例如,如果您想计算未排序列表中等于x的事物的数量,您可能会说它可以在线性时间内完成,并且是O(n),因为对您来说重要的是它不会花费比这更长的时间。然而,这也是事实,它是ω(n),因此θ(n),因为你必须检查列表中的所有元素-它不能在次线性时间内完成 更新: 正式: f在O(g)iff

我知道这两个词的定义,但为什么有时我会在教科书中看到O(1)和其他时间的Θ(1)


谢谢。

大θ表示法表示渐近上界,而大θ表示法另外表示渐近下界。通常,上界是人们感兴趣的,所以他们写O(某物),即使θ(某物)也是真的。例如,如果您想计算未排序列表中等于x的事物的数量,您可能会说它可以在线性时间内完成,并且是O(n),因为对您来说重要的是它不会花费比这更长的时间。然而,这也是事实,它是ω(n),因此θ(n),因为你必须检查列表中的所有元素-它不能在次线性时间内完成

更新:

正式:

  • f在O(g)iff中存在一个c和一个n0,使得对于所有n>n0,f(n)n0,f(n)>=c*g(n)

  • θ(g)中的f和ω(g)中的f,即当存在一个c1,一个c2和一个n0时,对于所有的n>n0,如果谈论实数上的函数,c1*g(n)O(1)和Θ(1)不一定相同。例如,考虑函数f(n)=1/n。这个函数是O(1),因为对于任何n≥ 1,f(n)≤ 1.然而,它不是Θ(1),原因如下:f(n)=Θ(g(n))的一个定义是,当n趋于无穷大时,|f(n)/g(n)的极限是满足0
    希望这有帮助

    当谈论常数时,它们之间有区别吗?还有一种情况是,θ1是有要求的,而不是o1吗?当谈到常数时间时,没有区别,因为下限是隐含的。但这里有一个有趣的讨论:你确定吗?我的答案中有一个我认为是反例的答案。这个答案是不正确的,不应该这样标记。它在传播错误信息。大θ表示大n(ish)的平均时间,与下限无关。下限是由大ω定义的。我在前面阅读时一定完全跳过了“额外”部分。我收回我所说的,因为Θ(f)确实代表三明治,而不仅仅是天花板或地板。