今日学习内容

今天读了算法的1.4节,这一节主要就是讲一些理论内容,如何分析算法的复杂度。

程序员对于算法复杂度的认知不需要特别精确,我的理解是,复杂度表示的是,随着问题规模的扩大,算法的所需的空间/时间的增长趋势。

由于我们关注的是增长趋势,所以我们只需要找到算法的主要增长趋势就好。当高级别和低级别同时存在时,可以忽略低级别的复杂度。

算法的复杂度有以下几种级别:

描述 函数
常数级别 1
对数级别 $logN$
线性级别 $N$
线性对数级别 $NlogN$
平方级别 $N^2$
立方级别 $N^3$
指数级别 $2^N$