(log n)^ k = O(n)?对于k大于或等于1

时间:2012-03-01 06:42:10

标签: big-o notation logarithm proof

(log n)^k = O(n)? For k greater or equal to 1.

我的教授在课堂上向我们介绍了这个陈述,但是我不确定函数是否具有O(n)的时间复杂度。即使像n^2 = O(n^2)之类的东西,函数f(x)如何具有运行时复杂性?

至于语句如何等于O(n)而不是O((logn)^ k)?

2 个答案:

答案 0 :(得分:5)

  

(log n)^ k = O(n)?

是。 big-Oh的定义是函数f在O(g(n))中如果存在常数N和c,那么对于所有n > Nf(n) <= c*g(n)。在这种情况下,f(n)(log n)^kg(n)n,因此,如果我们将其插入到定义中,我们会得到:“存在常量N和c,这样对于所有n > N(log n)^k <= c*n“。这是真的,因此(log n)^k在O(n)中。

  

函数f(x)如何具有运行时复杂度

没有。没有关于大哦符号的内容特定于运行时复杂性。 Big-Oh是一种对功能增长进行分类的符号。通常我们讨论的函数会测量某些算法的运行时间,但我们可以使用big-Oh来讨论任意函数。

答案 1 :(得分:2)

f(x) = O(g(x))表示f(x)增长速度较慢或与g(x)相当。

从技术上讲,这被解释为“我们可以找到x值,x_0和比例因子M,这样f(x)的大小超过{{} 1}}小于x_0的缩放大小。“或者在数学中:

g(x)

所以对于你的问题:

|f(x)| < M |g(x)| for all x > x_0问:是否有x_0和M这样的 log(x)^k = O(x)?

这种log(x)^k < M x for all x>x_0M的存在可以使用各种限制结果来完成,并且使用L'Hopitals规则相对简单。但是在某处可能是一个很好的非微积分证明... < / p>