所有时间复杂度为O(n)的算法是否也属于O(n²)范畴?
结论
n = O(n²)是完全成立的,所有时间/空间复杂度为O(n)的函数,必然也属于O(n²)的复杂度范畴。
推导验证
按照你给出的大O表示法定义,我们只需要找到符合要求的常数c和n0即可验证这个结论:
- 取
c=1,n0=1 - 对于所有满足
n > 1的取值,1 * n² > n恒成立,完全符合大O的判定条件
本质上大O表示法描述的是复杂度的上界,而非最紧的上界。我们日常说某算法是
O(n),指的是它的紧上界是线性阶,但这不影响它同时满足更大的上界判定,这个逻辑和「如果一个数小于10,那它必然小于100」是完全一致的。
扩展说明
按照这个逻辑,所有增长速度慢于等于n²的复杂度函数,都属于O(n²)的范畴,包括但不限于O(1)、O(logn)、O(n)、O(nlogn)、O(n²)本身。
内容的提问来源于stack exchange,提问作者vacih86456
相关产品推荐
相关产品推荐

