【发布时间】:2012-10-04 08:49:05
【问题描述】:
当我看到算法时,我知道如何计算算法的时间复杂度,但是当我得到次数时,我似乎无法弄清楚如何计算它算法被执行,所花费的时间。
我有时可以得到它,当它很明显时,比如 O(n)、O(n) 或 O(n^2),但以这个问题为例:
算法运行大小为 n 的给定输入。 如果 n 为 4096,则运行时间为 512 毫秒。 如果 n 为 16384,则运行时间为 1024 毫秒。 如果 n 为 36864,则运行时间为 1536 毫秒。
时间复杂度是多少?
我看到 n * 2, t * 1.5,但我不太确定如何计算出来。
感谢您的帮助:)
【问题讨论】:
-
这一般是无法回答的。您的教授可能希望您将常见的时间复杂度之一拟合到给定的值,但就您所知,该算法可能是 O(1)。
-
此外 - 一些算法有不同的情况。一个例子是 SAT Solvers,它通常非常快,但在最坏的情况下会衰减到指数运行时间(这对于
n的大值来说是可怕的)
标签: performance algorithm time complexity-theory