这里写自定义目录标题
渐进时间复杂度(O,o)
这里通过从无穷大的比较来理解,渐进时间复杂度。
要求具有高等数学基础
依赖
可以从无穷大比较分析的原因: 我们一般只考虑输入规模比较大(无穷大)的情况,一般这时候T(n)是很大的的。从而我们通过无穷大的阶数来比较T(n)和f(n)的情况,无论初始情况怎么样,阶数大的在n趋于无穷时总是会超过另一个阶数小的。当然就算T(n)的阶数更大在T(n)没有赶超f(n)时,它仍然是比较好的,但一般不考虑这种情况的。O只是一种粗略的划分。
数学定义[^1]
[^1]数据结构与算法分析 C++描述 第三版
通过极限计算
从这里可以看出来o其实表示的是低阶无穷大。
关于定义中的c
如果从极限的角度来定义,那么其实有没有c都无所谓的。但是这里是使用的不等式来定义的,那么关于同阶无穷大单纯的不叫常数的不等式就无法表达了。
比如小o,就算是同阶,T(n)也可能比p(n)小,误判成了低阶,所以如果p要是高阶那么对于所有的cp(n)都要大于T(n)。
对于大O,这里想表示的是低阶和同阶,如果是同阶,可能T>f(n),误判成了不是O。
所以实际这个c是用来处理同阶的。
个人理解,如有错误欢迎指正