为什么我们计算递归程序的复杂性?

时间:2018-03-10 08:32:26

标签: algorithm recursion time-complexity

我们知道程序的复杂性要么是以递归方式还是以迭代方式编写,我们可以从迭代(循环)程序中计算其复杂性,为什么我们需要计算其递归结构的复杂性? 我们知道它为这两种方法提供了相同的复杂性。 例如,我已经看到了,

  • 因子迭代算法的复杂性是O(n)和复杂性 因子的递归算法也是O(n)。

    二进制搜索的迭代算法的复杂性是O(logn)和 二元搜索的递归算法的复杂度也是O(logn)。

    为什么我们需要计算递归程序的复杂性,如果 我们知道它们的迭代算法的复杂性。

1 个答案:

答案 0 :(得分:2)

如果您有一个迭代程序,很容易将其转换为递归程序,从而节省了复杂性。但反过来说不是这样!你有的函数只能通过迭代迭代来计算(最着名的是Ackerman function)。

所以一般情况是递归而不是迭代。