空间复杂度
空间开销与问题规模n的关系
计算
普通程序
1.找到所占空间大小与问题规模相关的变量
2.分析所占空间x与问题规模之间的关系 x=f(n)
3.x的数量级O(x)就是空间复杂度S(n)
递归程序
1.找到递归调用的深度x与问题规模n的关系 x=f(n)
2.x的数量级O(x)就是空间复杂度S(n)
总结
数据结构三要素
逻辑结构——线性结构和非线性结构
存储结构
数据运算
算法的五个特性
有穷性,确定性,可行性,输入,输出
复杂度
时间复杂度和空间复杂度
时间复杂度
一般考虑最坏情况下的复杂度,与问题规模n的关系
空间复杂度
只需要分析输入和程序之外的额外空间,程序所需的辅助空间大小
例题
选B,为O(n)
外层循环,i取1,2,4,...2^k,同时2^k<=n
内层循环执行i次,所以为等比数列求和,结果为
2^(k+1)-1,同时,2^k<=n,次数为2n+1
故,O(n)