递归 的概念和应用

编程语言学习

递归

/rɪˈkɜːrʒən/
名词 编程术语

基本释义:函数直接或间接调用自身的过程

词源:源自拉丁语"recurrere"(返回)

📚 核心含义

编程概念

函数通过调用自身来解决问题的方法

递归常用于解决分治问题。
递归在分治问题中很常见。
计算机科学

数学定义

通过自身定义自身的数学结构

The Fibonacci sequence is defined by 递归.
斐波那契数列是通过递归定义的。
数学

算法思想

将大问题分解为相似小问题的解决策略

递归算法通常更简洁。
递归算法通常更优雅。
算法

"递归"是编程和数学中的重要概念,理解递归思维对学习算法和数据结构至关重要。递归代码通常更简洁但需要更多内存。

🔄 用法对比

英文例句

The recursion function calls itself.

This problem can be solved with recursion.

Understanding recursion requires practice.

中文翻译

递归函数会调用自身。

这个问题可以用递归解决。

理解递归需要练习。

🔊 发音指南

英式发音

/rɪˈkɜːʃən/

瑞-克-申(重读"克")

美式发音

/rɪˈkɜːrʒən/

瑞-克-日恩(重读"克")

发音要点:

常见发音错误

  • 读成"瑞-库-申"(应为/rɪˈkɜːʃən/)
  • 重音放在第一个音节
  • 混淆英式和美式发音

🎯 常见搭配

递归 + 函数

表示编程实现

递归函数
递归实现的函数
编程

尾递归

特殊的递归优化形式

tail recursion
尾递归优化
优化

递归 + 算法

描述算法类型

recursive algorithm
递归算法
算法

语法注意

名词: recursion
形容词: recursive

⚠️ 易混淆点

不要混淆:

递归就是循环。 (错误)

正确:递归通过函数调用自身实现,循环通过迭代实现

所有递归都能转换为循环。 (错误)

正确:理论上可以,但某些递归逻辑用循环实现会很复杂

✍️ 随堂练习

翻译练习

1. The recursive solution is elegant.
2. This problem requires recursion.
3. Understanding recursion is key to algorithms.

1. 递归解法很优雅。

2. 这个问题需要递归解决。

3. 理解递归是学习算法的关键。

代码练习

用递归实现阶乘函数:

function factorial(n) {
  if (n === 1) return 1;
  return n * factorial(n - 1);
}

改错练习

找出并改正错误:

1. 递归必须有多个参数
2. 递归比循环总是更快
3. 递归函数不需要终止条件

1. 递归可以有单个或多个参数

2. 递归通常比循环慢,因为需要维护调用栈

3. 递归函数必须要有终止条件,否则会无限递归