使用<或者在大O中

时间:2013-10-26 14:57:49

标签: algorithm math big-o

我已经看到了O符号的两种不同的正式定义:

f(n)= O(g(n))如果有常数n 0 ,c其中对于任何n 0 ,我们有f(n)&lt ; CG(n)的

f(n)O(g(n))如果有常数n 0 ,c其中对于任何 0 ,我们有f(n)≤cg( n)的

区别在于f(n)是否严格小于cg(n)或小于或等于cg(n)。

这些定义是否相同?如果是这样,我该如何证明呢?

1 个答案:

答案 0 :(得分:3)

首先,如果你有那个

  

f(n)< c g(n)表示任何n≥n 0

那么

也是如此
  对于任何n≥n 0

f(n)≤cg(n)。

同样,假设

  

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

希望这有帮助!