递归(Recursion)
缩写:无
简述
函数直接或间接调用自身以求解问题的技巧,通常包含基线条件与逼近基线的递归步骤。适于树/图与分治;须防栈溢出,尾递归优化视语言而定。
使用场景
树遍历、分治算法、语法解析、某些动态规划形式。
组成与要点
f(问题):
if 基线: return 直接答案
else: return 组合( f(更小问题) )
实践与应用
• 先写清基线
• 深度大时改迭代或显式栈
• 备忘录化重叠子问题
注意事项
• 无基线或逼近错误导致无限递归
• 依赖尾调用优化但运行时不保证
关联术语
• 调用栈:递归深度受栈限制
• 循环:可用迭代改写的对照
• 分治:递归常用的问题分解模式
• 基线条件:递归终止的必要条件