哪个更快,在大小为10n的输入上运行一次运行时间为O(log n)的算法,或者在每个大小为n的输入上运行十次?
答案 0 :(得分:2)
O(log 10n)因为对数时间比线性时间慢得多。你可以把它算在你的身上,例如
For n = 1000: log n = 10, 10 log n = 100, log 10n = 13
答案 1 :(得分:1)
如果要查看,可以进行限制测试。
lim (log(10n)/log(n)), n->infinity
。 (wolfram alpha)
如果log(10n)
比log(n)
快10倍,它应该收敛到10。
log(10n)/log(n) = log_n(10n) = log_n(10) + 1
。
所以当n变为无穷大时,log_n(10)
会收敛到0.(你可以通过检查一些日志图来检查它)