【发布时间】:2017-01-23 23:57:00
【问题描述】:
如果一个算法的平均案例时间复杂度为 O(n2 ),对于 1000 个元素的输入大小需要 10 秒来执行,那么当输入大小为 10,000 个元素时,它需要运行多长时间?
【问题讨论】:
-
我们通常不会将大 O 与确切时间联系起来,但您仍然可以说大约需要 10^5 秒(虽然这样做不正确) time= a.n^2 find a by first约束。同样,这不是一个正确的方法,因为大 O 与精确时间不同,但它仍然给出了粗略的估计
-
O(n^2) 可以是像 1000000 + 0.0001(n^2) 这样的函数。所以理论上你不能仅仅通过复杂性的顺序来预测时间。大 O 复杂度只是衡量时间如何随着 N(输入大小)趋于无穷大而渐近增长的量度。
-
即使你知道平均时间正好是 c.n^2 你仍然无法回答这个问题,尽管你可以说出最大似然估计量是多少。
-
我投票决定将此问题作为题外话结束,因为该问题包含错误的假设,这使得解决方案变得不可能。
标签: java algorithm time-complexity