【发布时间】:2017-03-30 17:26:27
【问题描述】:
将这些函数按 n 的升序排列: 2^((log n)^0.5), 2^n, 2^(n/2), n^(4/3), n(log n)^3, n^(log n), 2^(n ^2),嗯!
【问题讨论】:
-
这不是家庭作业服务。
标签: algorithm big-o asymptotic-complexity
将这些函数按 n 的升序排列: 2^((log n)^0.5), 2^n, 2^(n/2), n^(4/3), n(log n)^3, n^(log n), 2^(n ^2),嗯!
【问题讨论】:
标签: algorithm big-o asymptotic-complexity
部分答案:2^((log n)^0.5), 2^(n/2), 2^n, n!, 2^(n^2)。
还需要把这些:n^(4/3), n(log n)^3, n^(log n)
【讨论】:
解决这个问题的方法是查看当n 接近无穷大时哪个函数最快接近无穷大。假设你有一些函数:
f(n) = n!
g(n) = n
h(n) = 3^n
当n 接近无穷大时,您可以通过评估它们的比率来比较任意两个函数。例如:
Lim f(n) /
n->∞ / g(n)
如果结果大于 1,则 f(n) 渐近大于 g(n)。如果结果是 1,那么它们是渐近相同的。如果结果小于一,则f(n) 渐近小于g(n)。
你可能会发现有些很容易解决,比如f(n)和g(n),你可以简化表达式,得到一个确定的极限值。
f(n) / = n! / = n (n-1)! / = (n-1)!
/ g(n) / n / n
n 趋于无穷这个表达式的极限是无穷大,这意味着 f(n) 渐近大于 g(n)。
其他的表达方式就没那么简单了。如果评估限制给你一个不确定的形式,你需要使用L'Hôpital's rule。
Lim g(n) / = Lim n / = ∞ /
n->∞ / h(n) n->∞ / 3^n / ∞
根据 L'Hôpital 的规则,我们可以通过替换 g'(n) 和 h'(n) 来评估限制。
Lim g'(n) / = Lim 1 / = 1 /
n->∞ / h'(n) n->∞ / 3^n ln(3) / ∞
这个限制显然小于 1,所以我们可以说g(n) 渐近小于h(n)。
【讨论】: