空间复杂度
记录一下以免忘记
空间复杂度指运行完一个程序所需的内存空间,有时可以用空间来换取时间。
算法空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度计算的公式记作:S(n)=O(f(n)),其中n为问题规模,f(n)为语句关于n所占储存空间的函数。
当一个算法的空间复杂度是常量时,即不随处理数据n变化而变化时可记为O(1),空间复杂度的计算与时间复杂度计算大体相同。
int i = 0;
int j = 0 ;
//...后面即使在有10个变量20个,只要内存不随n而改变就可记作O(1)
for(int i = 0;i<n;i++){
int j = 0;
}
这段代码中创建了n个j变量所以空间复杂度为S(n) = O(n)。
for(int i = 0 ; i <n; i ++){
for(int j = i ; j< n ; j++){
int k = 0;
}
}
一共要创建(n+1)*n/2个变量保留最高项的出空间复杂度S(n)=O(n²)。