算法复杂度基础
算法复杂度是用来描述算法的执行的增长率与执行时间,本质上是数学中的极限,当f(n)中的n趋于无穷大时,只有高阶因子对函数有影响
基本规则
- 常数c
O(c)=O(1)
无论这个函数处理多大的数据,消耗的时间是固定的。 - 乘法忽略常量因子
当执行时间为变量T时,常量可以忽略
O(cT)=cO(T)=O(T) - 加法取最大
当算法的执行时间由多个任务组成时,取最耗时的任务
O(T1)+O(T2)=O(T1+T2)=MAX(O(T1),O(T2)) - 多变量乘法
一般为多重循环,需要把循环次数相乘
O(T1)O(T2)=O(T1T2)