如何证明n * log n在O(n)中?

时间:2019-08-01 12:11:04

标签: algorithm big-o complexity-theory

我正在研究Big-Oh,但是我坚持了证明部分。

问题是要证明

n * log n在O(n)中。

鉴于有一个公式可以检查它是否在大哦 我尝试过

F(n)<= c * g(n)

n * log n <= 1 * n

然后我得到log(n)<= 1,其中n> n0。因此,如果我用100代替n,结果将大于1。

(我检查了函数在O(n)中的答案)

2 个答案:

答案 0 :(得分:2)

您可以很容易地在O(nlogn)中证明它不是不是

假设该声明是真实的,那么definition of big O

  

有常数N,c使得对于所有n> N> 0:nlogn <= c * n

nlogn <= c*n  since n > 0
logn <= c
n <= 2^c

但是对于n = max {2^c+1, N+1}-以上内容不成立。因此,最初的假设是错误的,并且没有这样的常数。

如果没有这样的常量,根据大O表示法的定义,nlogn不在O(n)

答案 1 :(得分:0)

您不能证明n * log n为O(n),因为不是。

证明中至少有一个缺陷是n * log n <= 1 * n不正确。