空间复杂度(Space Complexity))
算法的存储量包括:
1.程序本身所占空间
2.输入数据所占空间;
3.辅助变量所占空间
输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。
空间复杂度是对一个算法在运行过程中临时占用的存储空间大小的量度,一般也作为问题规模n的函数,以数量级形式给出,记作:
S(n) = O(g(n))
空间复杂度分析1:
int fun(int n){
int i,j,k,s;
s=0;
for (i=0;i<=n;i++)
for (j=0;j<=i;j++)
for (k=0;k<=j;k++)
s++;
return(s);
}
由于算法中临时变量的个数与问题规模n无关,所以空间复杂度均为S(n)=O(1)。
空间复杂度分析2:
void fun(int a[],int n,int k)
//数组a共有n个元素
{