复杂度分析

所有代码的执行时间 T(n) 与每行代码的执行次数 n 成正比。

T(n) = O(f(n))

1、时间复杂度:表示算法的执行时间与数据规模之间的增长关系

  • 只关注循环次数最多的那一段代码
  • 总复杂度等于量级最大的那段代码的复杂度
  • 嵌套代码的复杂度等于内外复杂度乘积

平均时间复杂度:加权平均时间复杂度/ 期望时间复杂度:

将每一种情况的概率X 复杂度 然后累加,除以情况数

均摊时间复杂度:

当一组连续操作,大部分情况下复杂度都很低,只有个别情况复杂度很高,这时候可以将高复杂度的操作平摊到那些低复杂度的操作上,一般等于最好情况时间复杂度。

2、空间复杂度:表示算法的存储空间与数据规模之间的增长关系