何时使用递归

本文探讨了递归算法的原理,通过阶乘和斐波那契数列的例子展示递归的使用,同时指出此类问题使用递归效率较低。接着,介绍了递归在快速排序和汉诺塔问题中的高效应用,强调递归在“分而治之”策略中的优势。最后,总结了选择递归应考虑的问题,即提高效率和代码可读性的平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

何时使用递归

一、算法说明

递归来源于数学中的归纳法,归纳法是数学里的一种证明方法,它通常有以下两个步骤:

  1. 证明当 n 等于某一个值(通常是限定范围内的第一个值)时命题成立;
  2. 假设当 n = m 时命题成立,证明当 n = m + 1 时命题也成立。

数学中的归纳法由已知推向未知由前推向后,而在编程中通常是给定 n 的值(如 n = m)求结果,这与数学中的归纳法在过程上有些不同,多了一个回推的过程,通常是先由后向前,再由前向后(并不都是这样)。假定 n >= 1,并且 n = 1 时的结果已知,步骤如下:

  1. 要想求得 n = m 时的结果,必须知道 n = m - 1 时的结果,要想知道 n = m - 1 时的结果,必须知道 n = m - 2 时的结果,如此反复直到 n = 1(此时结果已知),此过程即由后向前;
  2. 已知 n = 1 的结果就可得到 n = 2 时的结果,得到 n = 2 时的结果就可得到 n = 3 时的结果,如此反复
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值