找不到功能的大O符号澄清

时间:2015-03-11 19:42:10

标签: time complexity-theory

所以这个例子在这个网站上很明显,但如果你有这个例子: N,平均秒:(1,000:2.7)(2,000:3.04)(4,000:3.6)(8,000:3.7)(16,000:4)? N每次加倍(2 * N),平均时间开始趋于平稳。我可以通过查看下面的例子(O(logN))来猜测,但有人可以澄清你将如何计算问题吗?

O(1):称为常数复杂度

1项:1秒
10项:1秒
100项:1秒

项目数仍然增加10倍,但O(1)的比例因子始终为1.

O(log n):称为对数复杂度

1项:1秒 10项:2秒 100项:3秒 1000项:4秒

1 个答案:

答案 0 :(得分:1)

您可以根据对数曲线拟合进行回归分析。您可以首先绘制数据以获得可视化确认。

Wolfram Alpha中的log fit会产生:

log fit

这表明你是对的,增长似乎是对数的(对于提供的数据)。

然而,请注意,时间测量不等于实际复杂性分析,这是一种形式证明,而不是适合经验数据的曲线(由于多种原因可能会扭曲)。