我知道有些算法在递归和迭代策略上都需要相同的运行时间。但我无法决定那个基础。
这是否可能同时采用递归和迭代策略的算法总是需要相同的运行时间?
答案 0 :(得分:3)
每个递归算法都可以简化为迭代算法(具有相同的运行时间)。 http://en.wikipedia.org/wiki/Recursion_(computer_science)#Recursion_versus_iteration
答案 1 :(得分:2)
是的,如果可以优化算法以使用尾递归,那么它可以在没有额外代码的情况下转换为迭代,因此将具有相同的执行时间。
答案 2 :(得分:0)
它可能具有相同的时间复杂度,但是常量开销可能会有所不同(递归可能会更昂贵)。此外,如果使用迭代方法,递归会增加额外的空间复杂性。