所谓的空间就是变量占用内存的大小。然而现在的内存空间已经很大了,其实没有必要在意。在这里还是写出计算方法的,S(n)=定义变量的个数。
以下定义了两个变量,所以空间复杂度就是S(2)。
int main(){
int n ;
int w ;
return 0;
}
要掌握空间复杂度,其实如果你能够计算出递归的空间复杂度就可以说基本掌握了。
int sum(int n){
int m;
int w;
n--;
if(n<m){
return n;
}else{
return sum(n);
}
return 0;
}
以上我们定义了变量n ,m,w为三个变量。随后当n<m时,调用递归在此定义三个变量。虽然都是同样的变量但是还是占用了空间。递归调用在执行完成后会释放内存,所以一共定义了n-m次三个变量,也就是3*(n-m)个变量。即3n-3m当n远远大于m是可以忽略掉m,即S(n)。
总结:空间复杂度就是定义变量的个数,通常针对于大量的内存而已这个是不用考虑的。
如果有错的地方还希望大佬们指点指点。