家庭作业 - 大O符号和计算时间

时间:2016-03-29 21:55:08

标签: algorithm

让我说我有一个算法,n = 20需要0.5ms,我想弄清楚如果n = 40,O(n ^ 2)需要多长时间。

据我了解,程序如下:

t = 0.5 *(40 ^ 2/20 ^ 2)

但为什么会这样呢?我不了解这背后的机制。我知道Big O是一个上限,对于任何n,它都是一些指令的输出。但计算时间并不合理。

1 个答案:

答案 0 :(得分:4)

  

假设我的算法在n = 20时需要0.5ms,我想知道如果对于O(n ^ 2)n = 40需要多长时间。

不幸的是,您可以推断 n = 40 的行为几乎没有。

算法 O(n 2 的陈述意味着存在一些常数 c> 0 ,对于足够大的 n ,运行时间不大于 c n 2 。因此,你不知道20,40或4,000,000是否属于“足够大”的 n ,即使它确实如此,你只能知道它是由某种东西限制的。

  

但计算时间没有意义。

不幸的是,这是一个合乎逻辑的结论。

修改

感谢Anmol Singh Jaggi的出色评论(非常感谢!),这是他链接的图,说明了问题

enter image description here