1、时间复杂度
- 时间复杂度:用来评估算法运行效率的一个式子
- 一般来说,时间复杂度高的算法比复杂度低的算法慢
- 常见的时间复杂度:O(1)<O(logn)<O(n)<O(n的平方)<O(n的平方logn)<O(n的三次方)
- 复杂问题的事件复杂度:O(n!) O(2的n次方) O(n的n次方)
O(1)表示执行一次
快速片段算法的时间复杂度:
- 确定问题规模n
- 循环减半过程:logn
- k层关于n的循环:n的k次
复杂情况:根据算法直行过程判断
2、空间复杂度
- 空间复杂度:用来评估算法内存占用大小的式子
- 空间复杂度的表示方式与时间复杂度完全一样。算法使用了几个变量:O(1);算法使用了长度为n的一维列表:O(n);算法使用了m行n列的二维列表:O(mn)
- “空间换时间”