【发布时间】:2013-09-18 19:24:02
【问题描述】:
我想知道以下 Big-O 比较的证明是什么:
f(n) 是 O(f(n) + g(n)))
我知道我们可以使用:
f(n) ≤ 常数 * (f(n) + g(n))
但我不知道如何跟进。
我们用 big-Ω 代替 big-O 的情况如何?
【问题讨论】:
标签: algorithm math proof big-o
我想知道以下 Big-O 比较的证明是什么:
f(n) 是 O(f(n) + g(n)))
我知道我们可以使用:
f(n) ≤ 常数 * (f(n) + g(n))
但我不知道如何跟进。
我们用 big-Ω 代替 big-O 的情况如何?
【问题讨论】:
标签: algorithm math proof big-o
如果你知道函数 g(n) 是非负的,那么请注意
f(n) ≤ f(n) + g(n) = 1 · (f(n) + g(n))
鉴于此,您能否使用大 O 表示法的正式定义来证明 f(n) = O(f(n) + g(n))?
如果 g(n) 不一定非负,那么这个结果不一定是真的。例如,取 f(n) = n 和 g(n) = -n。那么 f(n) + g(n) = 0,那么 f(n) = O(0) 是不成立的。
至于Ω的情况,你确定这个结果一定是真的吗?作为提示,尝试选择 f(n) = n 和 g(n) = 2n。 f(n) 真的是 Ω(f(n) + g(n)) 吗?
希望这会有所帮助!
【讨论】: