算法学习1之时间、空间复杂度
1.时间复杂度是用来估计算法运行时间的一个式子(单位)。一般来说,时间复杂度高的算法比复杂度低的算法慢。
常见的时间复杂度(按效率排序)
O(1)<O(logn)<O(n)<O(nlogn)<o(n2)<o(n2logn)<o(n³)
复杂问题的时间复杂度o(n!) o(2") o(n ") ...
2.快速判断算法复杂度(适用于绝大多数简单情况):
确定问题规模n
循环减半过程→logn
k层关于n的循环→n^k
复杂情况:根据算法执行过程判断
3.空间复杂度
空间复杂度:用来评估算法内存占用大小的式子
空间复杂度的表示方式与时间复杂度完全—样
算法使用了几个变量:O(1)
算法使用了长度为n的一维列表:O(n)算法使用了m行n列的二维列表:O(mn)
“空间换时间”(时间比较重要,内存便宜)

浙公网安备 33010602011771号