空间复杂度:
算法的空间复杂度并不是计算实际占用的空间,而是计算整个算法的辅助空间单元的个数,与问题的规模没有关系。算法的空间复杂度S(n)定义为该算法所耗费空间的数量级。
S(n)=O(f(n)) 若算法执行时所需要的辅助空间相对于输入数据量n而言是一个常数,则称这个算法的辅助空间为O(1)。
递归算法的空间复杂度:递归深度N*每次递归所要的辅助空间, 如果每次递归所需的辅助空间是常数,则递归的空间复杂度是 O(N).
那么递归算法的时间复杂度和空间复杂度该如何计算呢?
【递归算法的时间复杂度计算】
递归算法的时间复杂度为递归总次数*每次递归次数。
【递归算法的空间复杂度计算】
递归算法的空间复杂度为递归深度*每次递归所创建的对象个数。