大 O 与函数增长速度之间的区别

Difference between Big O and How fast a Function grows

我似乎混淆了两个概念,渐近复杂度(函数增长的速度)和大 O(算法的时间复杂度)。它们是一样的吗?

例如,我知道 O(1) 是算法的最佳情况 运行 时间。但很明显,这比 O(n^n) 之类的增长速度慢得多,后者增长得非常快,但这不是一种有利的算法复杂性吗?

还有类似的东西: nlogn1logn 增长得更快,但所有这些功能都比 n^n 增长得慢?任何澄清将不胜感激。

Big O是一种衡量算法渐近复杂度的方法,可以是时间,也可以是space。来自维基百科 link:

A description of a function in terms of big O notation usually only provides an upper bound on the growth rate of the function.

...

Big O notation is also used in many other fields to provide similar estimates.

n 的大小有一些要说的,因为 O(1) 是最好的复杂度,尽管这表明对于足够大的 n,常数项并不重要。

https://classes.soe.ucsc.edu/cmps102/Spring04/TantaloAsymp.pdf 可能有助于查看可以使用的不同符号。