目录
1. 什么是递归?
下面先描述一个递归可能应用的实际场景:
我们有一个神秘的盒子,有一把钥匙在这个盒子里。

这个盒子 里有盒子,而盒子里面又有盒子。钥匙可能就在某一个盒子中。为了找到钥匙,有两种解决思路。
下面是第一种解决方式:

- 创建一个要查找的盒子堆;
- 从盒子堆取出一个盒子,在里面找;
- 如果找到的是盒子,则将盒子加入盒子堆中,以便以后再查找;
- 如果找到钥匙,则大功告成!
- 回到第二步。
本文深入探讨了递归算法的概念,通过实际场景解释了递归的应用,并强调了基线条件和递归条件在防止无限循环中的重要性。同时,详细解析了递归调用栈的工作原理,举例说明了计算阶乘时调用栈的变化,指出栈在跟踪未完成函数调用中的作用。最后提到了递归可能导致的内存消耗问题以及尾递归作为优化的方案。
目录
下面先描述一个递归可能应用的实际场景:
我们有一个神秘的盒子,有一把钥匙在这个盒子里。

这个盒子 里有盒子,而盒子里面又有盒子。钥匙可能就在某一个盒子中。为了找到钥匙,有两种解决思路。
下面是第一种解决方式:

4万+
4647
889

被折叠的 条评论
为什么被折叠?