我正在阅读Big-O符号的基础知识。
f(n)=Ω(g(n))表示c.g(n)是f(n)的下界,f(n)总是≥c.g(n)
f(n)= O(g(n))表示c.g(n)是f(n)的上界,f(n)总是 ≤c.g(n) 对于所有n≥n0
上图和下限在上图中清晰,但为什么f(n)和上限相交?当它清楚地从上面定义?那有意义还是我只是不必要地指出?
来源:Skiena的算法设计手册
答案 0 :(得分:2)
根据前两个定义,由于总是
这个词,所以不应该有交集f(n)=Ω(g(n))表示c.g(n)是f(n)的下界,f(n)是 总是≥c.g(n)
f(n)= O(g(n))表示c.g(n)是f(n)的上界,f(n) 总是≤c.g(n)
这些定义并不完全正确。因为big-O表示法的想法是检查n
真正大时的操作次数。通俗地说,这意味着你只能在你认为足够大的数字之后开始检查复杂性。这在您的图片中列出:
上限和下限对n有效; n0 ......
这就是为什么在图片上你有一条垂直线n0。所以你不关心这一行之前的任何事情,因为你只考虑n0之后的数字。
要使这些定义完全正确,只需添加n> n0在他们两个结束时。
答案 1 :(得分:2)
这个定义简直不准确。 Big-O符号是渐近增长的。因此,它的属性被认为是“足够大 N ”,这意味着它可能不适用于小 N 。
在图表中,“足够大的 N ”被标记为 N0 ,之后将保持限制属性。
答案 2 :(得分:0)
除了在其他答案中已经说过的内容之外,定义中的不等式也是不正确的,它们应该颠倒过来:
f(n)=Ω(g(n))表示c.g(n)是f(n)的下界,f(n)总是≥c.g(n)
f(n)= O(g(n))表示c.g(n)是f(n)的上界,f(n)总是≤c.g(n)
答案 3 :(得分:0)
我的一般假设是当 f(n)≥cg(n)时暗示身材高大的人总是很高,尽管以英寸或米或厘米为单位测量,这是真的,但这种情况似乎仅对n> n0
保持为真即。条件f(n)≥c.g(n)仅对n> n0
成立
所以在n> n0之前我们基本上不关心他们绘制的价值因为定义不适用。