我似乎混淆了两个概念,渐近复杂度(函数增长得多快)和Big O(算法的时间复杂度)。它们是一样的吗?
例如,我知道O(1)
是算法运行时间最好的情况。但显然这种情况比O(n^n)
增长得慢得多,nlogn
增长得非常快,但算法的复杂性不是很好?
还有类似的东西:
1
的增长速度超过logn
或n^n
,但所有这些功能的增长速度都比{{1}}慢?任何澄清将不胜感激。
答案 0 :(得分:0)
Big O是一种测量可能是时间或空间的算法的渐近复杂度的方法。来自维基百科链接:
通常仅以大O表示法描述函数 提供了函数增长率的上限。
...
Big O表示法也用于许多其他领域,以提供类似的估计值。
对于n
的大小,有一些话要说,因为O(1)是最好的复杂性,尽管这表明,对于足够大的n
,常数项并不重要。
https://classes.soe.ucsc.edu/cmps102/Spring04/TantaloAsymp.pdf可能有助于查看可以使用的不同符号。