空间复杂度
空间复杂度也不是用来计算程序实际占用的空间的,空间复杂度是对一个算法在运行过程中临时占用存储空间大小的量度 。
什么叫临时占用存储空间大小呢?
举个例子:打印数组arr1
即数组arr2的大小:就是临时占用的存储空间大小 ,其中的arr1.length就是它的大小,若arr1.length==N,那么它的空间复杂度就是O(N).
计算规则
大O渐进表示法。
1、用常数1取代运行时间中的所有加法常数。
2、在修改后的运行次数函数中,只保留最高阶项。
3、如果最高阶项存在且不是1,则去除与这个项目相乘的常数。得到的结果就是大O阶。
常见的空间复杂度计算
- 【例一】
算法执行所需要的临时空间不随着某个变量n的大小而变化,即此算法空间复杂度为一个常量,可表示为 O(1)
- 【例二】
第一行就创建了一个新的数组,占用大小为N(根据大O规则,1直接省略了) 后面的
int i
并不随着变量大小变化而变化
- 【例三】