递归是 编程中一种重要的思想,广泛应用于数据结构与算法中。它指的是一个函数在其定义或实现中调用自身,直到满足某个终止条件。递归的核心包含两个主要部分:
基础情况(终止条件):
当问题规模缩小到一定程度时,存在一个明确的答案或结束条件,这是递归能够停止的条件。
递归规则:
每次递归调用都会将问题划分成一个更小的子问题,逐步向基础情况靠拢,直到最终达到终止条件。
递归的应用非常广泛,例如在计算阶乘、解决迷宫问题、遍历树或图等场景中都有很好的表现。递归的优点是能够让代码更加简洁和直观,但同时也需要注意其效率和栈空间的使用,避免无限递归导致的栈溢出。
```python
def factorial(n):
if n == 0: 终止条件
return 1
else:
return n * factorial(n - 1) 递归规则
```
在这个例子中,`factorial` 函数不断调用自身来计算 `n` 的阶乘,直到 `n` 等于 0 时满足终止条件,此时函数返回 1。