Big O符号的正式定义是,如果我们有一个函数
f(n)
(用于算法的时间和空间)和另一个函数g(x)
,并且有常数c
和n0
,使得对于所有的n > n0
,都有c*g(n) > f(x)
,那么f(n) = O(g(n))
。但使用这个定义和一个增长二次方程总是会在某一点超过线性函数的事实,是否所有的O(n)
函数也是O(n²)
?或更准确地说,n = O(n²)
吗?
0*x^2 + B*x + C
是二次方程,那么O(n)函数也是O(n²),但通常被视为线性。 - chux - Reinstate Monica