算法的时间复杂度

时间:2011-02-03 14:36:27

标签: algorithm big-o time-complexity asymptotic-complexity

大小为n = 100的算法需要21秒才能运行。大小n = 1000需要31秒,而n = 10000需要41秒才能运行。什么是运行复杂性?

如果我尝试O(n)则:T(n)=(21 * 1000)/ 100 = 210 s(非O(n))
如果我尝试O(n ^ 2)则:T(n)=(21 * 1000 ^ 2)/ 100 ^ 2 = 2100 s(非O(n ^ 2))
如果我尝试O(log n)则:T(n)=(21 * log1000)/log100=31.5(不是O(log n))

我给出的另一个选项是O(1 / n)。我该如何计算?

2 个答案:

答案 0 :(得分:6)

看起来像O(lgn)

当日志的基数为10时,n的时间为T(n) = 10*log(n) + 1

答案 1 :(得分:1)

要解决此问题,请先从各个类中绘制一些函数。例如,要了解O(n)线性类绘制函数T(n)=n并了解O(n^2)类绘制函数T(n)=n^2。这将有助于您识别各种功能的形状。

之后,绘制问题中给出的点,使用x轴中的n值和y轴上的定时值。您应该能够快速识别此问题中的形状。

提示:这不是O(log n): - )

相关问题