标签: algorithm stack complexity-theory space-complexity
当一个算法不使用超过一定数量的辅助内存但是有O(log(N))个递归调用(每个都需要在堆栈上占用一些空间)时,该算法的空间是多少复杂度O(1)或O(log(N))?
O(log(N))
O(1)
答案 0 :(得分:6)
如果递归算法没有利用尾递归,那么,是的,直接实现将使用O(log(N))空间。这是因为运行时必须同时在内存中保留O(log(N))个堆栈帧,每个O(1)大小。