数据结构学习笔记:算法复杂度的度量之“大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记号复杂度的增长速度和复杂度的层次,明显可以看出指数复杂度后期的增长速度极快
在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Peter_Red_Boy/article/details/89602738
今日推荐