n的平方根是否接近O(log n)或O(n)?

时间:2016-10-20 09:10:24

标签: algorithm time-complexity big-o

我有两个算法A和B.

算法A的时间复杂度为 O (log n),B的时间复杂度为 O n )。

现在我有一个时间复杂度 O 的新算法C(√ n )我需要(数学上)证明算法A或算法B是否渐近接近算法C。

对此的任何帮助都非常感谢。谢谢!

1 个答案:

答案 0 :(得分:4)

  

n的平方根是否接近O(logn)或O(n)?

(我在下面假设你实际上是指Θ,而不是 O (感谢WhatsUp指出那个)。否则,这些只是上限,你不能说上限界限的功能差异。)

让我们首先从特定函数 log(n)√n n 开始。显然, log(n)≤√n≤n(你可以使用L'Hospital的规则来看这个)。所以问题是 n - √n是否大于或小于√n - log(n)

将L'Hospital的规则应用于

lim n→∞(n - √n)/(√n - log(n))

你可以看到这是

lim n→∞(1 - 0.5 /√n)/(0.5 /√n - 1 / n)= lim n→∞(n - 0.5√n)/(0.5√n - 1)= lim n→∞(n - 0.5√n)/(0.5√n)=∞

所以√n更接近 log(n)而不是 n

使用Θ,计算基本相同,但更繁琐。你需要争辩说每个函数都在两个常量之间,并相应地使用上面和下面的函数。尽管如此,如果 f g h Θ(log(n))Θ(√n)Θ(n),然后足够大 n g(n) - f(n)&lt ;< h(n) - g(n)