大O复杂度表示法
- 大 O 时间复杂度实际上并不具体表示代码真正的执行时间,而是表示代码执行时间随数据规模增长的变化趋势,所以,也叫作渐进时间复杂度
时间复杂度 分析方法
- 只关注循环执行次数最多的一段代码。忽略掉公式中的常量、低阶、系数,只需要记录一个最大阶的量级就可以了
- 加法法则:总复杂度等于量级最大的那段代码的复杂度
- 乘法法则:嵌套代码的复杂度等于嵌套内外代码的复杂度的乘积
常见的时间复杂度
- 常数阶 O(1)
- 对数阶 O(logn)
- 线性阶 O(n)
- 线性对数阶 O(nlogn)
- 平方阶 O(n²)
复杂度分析 概念
- 最好情况时间复杂度。在最理想的情况下,执行这段代码的时间复杂度
- 最差情况时间复杂度。最糟糕情况下
- 加权平均情况时间复杂度
- 均摊情况时间复杂度