马东什么:计算复杂度理论——时间复杂度zhuanlan.zhihu.com



之前介绍了时间复杂度,终于腾出时间刷空间复杂度了;
和时间复杂度一样,常见的空间复杂度的度量也包括了:
https://www.bigocheatsheet.com/www.bigocheatsheet.com找到了一个很好的总结


整体概念和时间复杂度类似,一般来说,在leetcode的题目中,都是通过额外空间的使用的大小来进行衡量的;
空间复杂度O(1)
j=0
for i in range(n):
j+=1无论n的大小如何变化都没有开辟新的内存空间来存放;
空间复杂度o(n)
j=[]
for i in range(n):
j.append(i)可以看到,内存空间随着n的增大而线性增长
(注意,这里仅仅是为了说明而用python写的例子,实际上python的list的内存空间增长是指数的。。。。具体可见python list的内存占用变化的相关文章分析这里暂时不写那么多了)
空间复杂度o(n^2)
j=[]
for i in range(n):
for k in range(n):
j.append(k)空间复杂度O(n^k) 类似的道理了。。
空间复杂度 O(logn)
快速排序---(面试碰到过好几次)_nrsc-优快云博客_快速排序blog.youkuaiyun.com
快排涉及到需要定义中间变量,这个中间变量的空间复杂度为O(logn)
本文深入探讨计算复杂度理论,重点解析时间复杂度和空间复杂度。通过实例展示了O(1)、O(n)、O(n^2)及O(logn)等常见复杂度级别,并解释了它们在算法设计中的意义。对于空间复杂度,强调了通过额外空间使用来评估,并以LeetCode题目为例进行说明。
2908

被折叠的 条评论
为什么被折叠?



