时间复杂度
时间复杂度的全称是渐进时间复杂度,表示算法的执行时间与数据规模之间的增长关系。
分析原则
1. 只关注循环执行次数最多的一段代码
2. 加法法则:总复杂度等于量级最大的那段代码的复杂度
3. 乘法法则:嵌套代码的复杂度等于嵌套内外代码复杂度的乘积
常见的时间复杂度
常量阶 O(1)
对数阶O(logn)
线性阶O(n)
线性对数阶O(nlogn)
平方阶O(n平方)
空间复杂度
空间复杂度全称就是渐进空间复杂度(asymptotic spacecomplexity),表示算法的存储空间与数据规模之间的增长关系。
最坏时间复杂度
最坏情况时间复杂度就是,在最糟糕的情况下,执行这段代码的时间复杂度。
平均时间复杂度
平均时间复杂度的全称应该叫加权平均时间复杂度或者期望时间复杂度
最好时间复杂度
最好情况时间复杂度就是,在最理想的情况下,执行这段代码的时间复杂度。
均摊时间复杂度
最坏情况时间复杂度就是,在最糟糕的情况下,执行这段代码的时间复杂度。