Big O Notation数据结构

时间:2016-11-21 10:41:20

标签: algorithm big-o

我对Big O Notation有疑问 等式

f(n)=3n+8

我们如何找到上限以及如何找到大O符号 给出的解决方案是

3n+8<=4nn>8,其中c=4n_0=8

我不确定这个解决方案是如何找到的。你能解释一下如何达成这个解决方案吗?

1 个答案:

答案 0 :(得分:3)

来自CLRS的Big-Oh表示法的数学定义:

O(g(n)) = { f(n) : there exists positive constants c and n_0 such that 0 <= f(n) <= c.g(n) for all n >= n_0 }

f(n)=3n+8

然后,我们必须找到正常量cn_0,以便0 <= 3n+8 <= c.g(n) for all n >= n_0

g(n)=n。 (如果需要,你可以尝试各种功能)

然后,0 <= 3n+8 <= cn for all n >= n_0

只有当c的值大于3 并且 n的值大于或等于{{1}时,此表达式才会成立}}。如果不是这种情况,那么这种线性不等式将会失败。例如:

  • 如果8,那么我们会得到c = 3,这是假的。
  • 如果0 <= 3n+8 <= 3nc = 4,那么我们会得到n_0 = 7,这意味着0 <= 3n+8 <= 4n会再次提出0 <= 3.7+8 <= 4.7,这是假的。

因此,我们可以得出结论0 <= 29 <= 28

如果您想了解更多信息,

This是一个很好的资源。