这是我希望分析的图表。我必须找到梯度(斜率),从中我可以推断出时间复杂度。
我发现斜率等于1,91。如果这是真的我该怎么办?
答案 0 :(得分:2)
对数的商数约为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尝试证明的内容。