跳到正文
信奥逐课

第 114 课

递归调用过程

🟢 入门 约 5 分钟

一句话理解

递归调用过程可以想成一叠等待中的任务。

为什么要学

会画调用树,才知道它算了几次、会不会重复。

讲解

每次调用都暂停当前函数,进入更小的问题,等结果回来再继续。

Fibonacci 朴素递归会把同样的 f(k) 算很多遍。这就是后面要记忆化的原因。

例子

f(3)
 ├─ f(2)
 │   ├─ f(1)
 │   └─ f(0)
 └─ f(1)

f(3) 先等 f(2) 和 f(1)。f(2) 再等 f(1) 和 f(0)。同一 f(1) 出现两次。

常见错误

练习 做完再看下一课

朴素递归斐波那契会重复计算相同的子问题。

进度保存在本机浏览器里。

左右方向键也可翻课