【发布时间】:2020-07-07 11:28:31
【问题描述】:
我将 n 的随机值 1、2、4、8、16、32 和 64 应用于函数 (n^2) 和 ((n^2)*log(n))。n 的值^2 高于 ((n^2)*log(n)) 的值,但在某些时候 ((n^2)*log(n)) 的值超过了 (n^2) 的值。数值表是:
n n^2 (n^2 *log(n))
1 1 0
2 4 1.2
4 16 9.6
8 64 57.79
16 256 308.25
32 1156 1541.27
64 4096 7398.11
从上表中,可以得出哪个算法函数的增长速度更快的结论,为什么?
【问题讨论】:
-
А 愚蠢的例子:看看
n和10 + log n。对于 n ≤ 11,n < 10 + log n。不过,从 n→infinity 来看,n的速度要快得多。 -
对于那些 log(n)
-
我理解你的论点,即 10+log(n) 比 n 快。在这种情况下,log n 乘以 n^2,并将其值与 n^2 进行比较。您注意到的是 n^2 的值在某些时候被 (n^2)*log n 的值超过。但是,n^2 的值连续高于 ((n^2)*log(n)) 并不一致。什么时候会选择比另一个增长更快的算法函数?
-
@tobias_k 我使用以 2 为底的对数
-
不,一定要以 10 为基数。
标签: algorithm function calculus