算法的复杂性:大O表示法

时间:2014-11-05 22:45:41

标签: complexity-theory time-complexity

O( sqrt(n) ) = O(n) ?

我们应该找到c和n0验证: 0(sqrt(n))< c * n; c> 0且n> n0

如何找到c和n0?还是我应该找到另一个想法?

由于

1 个答案:

答案 0 :(得分:1)

对于n > 1,我们有√n > 1,因此我们有以下不等式:

√n < √n * √n = n, for any n > 1.

所以我们可以取c = 1和n 0 = 2来证明√n= O(n)。


备注

严格地说,你应该避免写下像O(√n) = O(n)这样的东西。 Big-O表示法用于描述函数的渐近上界,但O(√n)不是函数。

O(√n) = O(n)滥用符号,实际上意味着以下内容:

If f is a function such that f(n) = O(√n), then f(n) = O(n).

在我们的情况下,如果对于任何函数 f ,我们f(n) = O(√n)√n < n n > 1,那么f(n) < c * √n < c * n显然为n > 1任何f(n) = O(n),因此{{1}}。