【发布时间】:2014-02-08 00:45:45
【问题描述】:
这是我要分析的图表。我必须找到梯度(斜率),并从中推断出时间复杂度。
我发现斜率等于 1,91。如果是真的,我还应该怎么做?
【问题讨论】:
标签: time complexity-theory gradient
这是我要分析的图表。我必须找到梯度(斜率),并从中推断出时间复杂度。
我发现斜率等于 1,91。如果是真的,我还应该怎么做?
【问题讨论】:
标签: time complexity-theory gradient
对数的商大约是2,去掉对数是什么意思?
log(T(n)) / log(n) = 2
log(T(n)) = 2 * log(n)
log(T(n)) = log(n²)
T(n) = n²
T(n) 表示算法的时间复杂度。当然,我们是在渐近地谈论,即使用 Big O notation 我们这么说
T(n) ∈ O(n²).
您测量了大输入的值 2,并且假设即使对于所有较大的输入,它也将保持不变。
您可以在多伦多大学的一位导师的页面上read more。它使用基本的微积分来解释它是如何工作的。尽管如此,这一切背后的想法是,对数从常数指数中产生乘法常数,从乘法常数中得到加法常数。
另外关于剧情的解读,最近 Stack Overflow 上也出现了一个类似的问题:Log-log plot/graph of algorithm time complexity
但请注意,这实际上只是对时间复杂度的估计。您无法仅通过在有限的输入集上运行算法来证明算法的时间复杂度。不过,这种方法可以让您很好地猜测要尝试使用 analysis of the algorithm 证明什么。
【讨论】: