【算法】深度理解 递归算法

本文深入探讨了递归算法的概念,通过实际场景解释了递归的应用,并强调了基线条件和递归条件在防止无限循环中的重要性。同时,详细解析了递归调用栈的工作原理,举例说明了计算阶乘时调用栈的变化,指出栈在跟踪未完成函数调用中的作用。最后提到了递归可能导致的内存消耗问题以及尾递归作为优化的方案。

 

目录

1. 什么是递归?

2. 基线条件和递归条件

3. 递归调用栈


1. 什么是递归?

下面先描述一个递归可能应用的实际场景:

我们有一个神秘的盒子,有一把钥匙在这个盒子里。

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

下面是第一种解决方式:

  1. 创建一个要查找的盒子堆;
  2. 从盒子堆取出一个盒子,在里面找;
  3. 如果找到的是盒子,则将盒子加入盒子堆中,以便以后再查找;
  4. 如果找到钥匙,则大功告成!
  5. 回到第二步。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值