WebMD
本页大纲

递归(Recursion)

缩写:无

简述

函数直接或间接调用自身以求解问题的技巧,通常包含基线条件与逼近基线的递归步骤。适于树/图与分治;须防栈溢出,尾递归优化视语言而定。

使用场景

树遍历、分治算法、语法解析、某些动态规划形式。

组成与要点

f(问题):
  if 基线: return 直接答案
  else: return 组合( f(更小问题) )

实践与应用

• 先写清基线
• 深度大时改迭代或显式栈
• 备忘录化重叠子问题

注意事项

• 无基线或逼近错误导致无限递归
• 依赖尾调用优化但运行时不保证

关联术语

• 调用栈:递归深度受栈限制
• 循环:可用迭代改写的对照
• 分治:递归常用的问题分解模式
• 基线条件:递归终止的必要条件