比较运行时间

时间:2016-09-07 22:00:45

标签: algorithm math logging computer-science

我正在研究自己的算法。我使用Introduction to Algorithms (CLRS)并发现它很有趣。为了解决这个问题,我在这个问题上遇到了一些困难(比较运行时间) 我知道规则,但我找到了答案,但我需要有人向我详细解释。正如您在下面看到的log n运行时的答案。 我试着在我的计算器中记录这个数字,但它与下面的数字不符。例如,当我在我的计算器中使用log(2 ^ 1000000)时,它给了我一个全新的答案而不是这个9.9e301029。

感谢您提供的任何帮助

lg n =Tμs=> n = 2 ^Tμs

lg n = 1 second  => n = 2^1000000 = 9.9e301029
lg n = 1 minute  => n = 2^60000000 = 5.5e18061799
lg n = 1 hour    => n = 2^3600000000
lg n = 1 day     => n = 2^86400000000
lg n = 1 month   => n = 2^2592000000000
lg n = 1 year    => n = 2^31536000000000
lg n = 1 century => n = 2^3153600000000000

2 个答案:

答案 0 :(得分:0)

二进制搜索可能具有log2(n)μs的运行时间(常数因子可能要小得多)。二进制搜索很快。如果你有一台功能强大的计算机,你可能会将640亿字节的数组放入内存中,而二进制搜索则需要36微秒。是的,您无法构建足够大的计算机内存,以便使用宇宙中的所有硅树脂进行二进制搜索需要一毫秒的数组。

答案 1 :(得分:0)

2^1000000 = 9.9e301029

log(2^1000000) = 1000000(假设基数为2)

1000000µs = 1s

现在清楚?

大多数计算器默认为记录基数10,因此您需要使用以下公式转换为log base 2:

log_b(x) = log_a(x) / log_a(b)

相关问题