算法学习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)

“空间换时间”(时间比较重要,内存便宜)

posted @ 2021-04-19 12:33  一米八大高个  阅读(61)  评论(0)    收藏  举报