一、什么是空间复杂度
空间复杂度:Space Complexity
我们前面说过时间复杂度。
时间复杂度是指执行这个算法所需要的计算工作量;而空间复杂度是指执行这个算法所需要的内存空间。
但要解释清除空间复杂度,要先说一下算法存储量。
算法存储量包括:
- 程序本身所占空间
- 输入数据所占空间
- 辅助变量所占空间
输入数据所占空间只取决于问题本身,和算法无关,则只需分析除输入数据和程序本身所占空间之外的辅助变量所占额外空间。
空间复杂度是对一个算法在运行过程中临时占用存储空间(即辅助变量)大小的一个量度,反映的是一个趋势,不是用来计算程序实际占用的空间的,一般也作为问题规模n得函数,以数量级形式给出,记作:
S(n) = O(g(n))