【C | recursion && iteration】the differences of recursion && iteration

48 阅读1分钟

recursion && iteration

recursion

  • 大事化小:分解成子问题,减小规模数

iteration

  • 利用循环结果重复执行语句

differences

  • recursion

    • 调用自身
    • 代码简洁 易理解
    • 系统 栈溢出(递归深度过深问题)--- 树的深度
    • 效率(系统开销大)
  • iteration

    • 多变量追踪

    • 效率高

    • 代码复杂

在大多数情况下,迭代通常比递归更高效, 因为递归会在每次函数调用时保存和加载状态,而迭代在循环体内直接操作状态。 然而,递归更容易理解和编写,适合解决一些问题,如树的遍历和分治算法等。

选择使用递归还是迭代取决于问题的性质、性能需求和个人偏好。

借鉴

image.png