recursion && iteration
recursion
- 大事化小:分解成子问题,减小规模数
iteration
- 利用循环结果重复执行语句
differences
-
recursion
- 调用自身
- 代码简洁 易理解
- 系统 栈溢出(递归深度过深问题)--- 树的深度
- 效率(系统开销大)
-
iteration
-
多变量追踪
-
效率高
-
代码复杂
-
在大多数情况下,迭代通常比递归更高效, 因为递归会在每次函数调用时保存和加载状态,而迭代在循环体内直接操作状态。 然而,递归更容易理解和编写,适合解决一些问题,如树的遍历和分治算法等。
选择使用递归还是迭代取决于问题的性质、性能需求和个人偏好。