递归函数
递归(Recursion) 是指函数直接或间接地调用自身来解决问题的一种方法。 递归解决的问题通常具有重复结构,即大问题可以分解为小问题的子问题。
cpp
// 递归函数定义形式
返回类型 函数名(参数列表) {
if (终止条件)
return 结果;
else
return 自身调用(...);
}递归核心思想
- 终止条件 (Base Case): 防止无限递归,必须存在明确的结束条件。
- 递归关系 (Recursive Case): 将大问题逐步分解为更小的问题,直到满足终止条件。
cpp
int factorial(int n) {
if (n == 1) return 1; // 终止条件
return n * factorial(n - 1); // 递归调用
}递归与循环比较
| 对比项 | 递归 | 循环 |
|---|---|---|
| 原理 | 函数调用自身 | 使用for/while迭代 |
| 性能 | 较低(调用栈消耗大) | 较高 |
| 可读性 | 更贴近数学思维 | 更接近过程控制 |
| 应用 | 分治、树结构、图遍历等 | 计数、线性处理 |