Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我已经看到了 O 表示法的两种不同的正式定义:
f(n) = O(g(n)) 如果有常数 n 0 , c 其中对于任何 n 0,我们有 f(n) < cg(n)
和
f(n) O(g(n)) 如果有常数 n 0 , c 其中对于任何0,我们有 f(n) ≤ cg(n)
区别在于 f(n) 是严格小于 cg(n) 还是小于或等于 cg(n)。
这些定义是否相等?如果是这样,我该如何证明?
首先,如果你有
f(n) < cg(n) 对于任何 n ≥ n 0
那么情况也是如此
f(n) ≤ cg(n) 对于任何 n ≥ n 0。
同样,假设
f(n) ≤ cg(n) 对于任何 n ≥ n 0
假设 g(n) ≥ 1,那么你得到,对于任何 n ≥ n 0,
f(n) ≤ cg(n) ≥ cg(n) + 1 ≤ cg(n) + g(n) = (c + 1)g(n)
因此,使用新常数 c' = c + 1,我们得到
f(n) < c' g(n) 对于任何 n ≥ n 0
希望这可以帮助!