def list_copy_rec(list_1, i):
if i == len(list_1):
return []
return [list_1[i]] + list_copy_rec(list_1, i + 1)
我不确定空间的复杂性是什么.
该算法非常简单,其目的是将输入的列表复制到另一个列表.它使用堆栈递归,我认为空间复杂性为O(N),但我不太确定,因为+运算符每次都会创建一个额外的列表(但它可能被垃圾收集器删除),而且考虑到它是堆栈递归,它使用内存将未完成的操作保存到最后(但我也不确定这是否会影响最终的内存使用).我是分析算法复杂性的初学者,所以请注意:)