数据结构学习笔记:算法复杂度的度量之“大O记号”
分析算法复杂度的非常重要的方法:大O记号!!
下面来让我们看一下到底什么是大O记号
举个例子:
用一个直尺去评价算法复杂度,上面的刻度就相当于大O记号,我们不一定要一味的强调刻度的精细程度,没有必要。能大致反映出算法的复杂度即可T(n)是一个相对比较精细复杂的函数,通过对其进行简化,成为一个近似表达T(n)的函数f(n),f(n)是T(n)的一个上界函数,粗略的表示了T(n),如下所示。O(f(n))就表示了算法T(n)在规模n下的复杂度,称为一个大O记号!
下面来看一下其他的记号
接下来详细开始讲一下所有大O记号的情况
第一种:常数复杂度O(1)。第二种:对数多项式复杂度O(logn)。
第三种:多项式复杂度O(n^c)。
第四种:指数复杂度O(2^n)。这种复杂度及其高,通常不可忍受
举一个例子:2-subset问题
最后,让我们再看看各种大O记号复杂度的增长速度和复杂度的层次,明显可以看出指数复杂度后期的增长速度极快