递归算法的理解

今天我对递归算法做了一个彻底的总结,总算是悟出了一些东西

递归算法是软件设计中解决递归问题的思想。什么是递归。我们可以从字面意思去理解他的意思。递归递归,先递再归。递的意思就是递推,即从高向下逐步展开。归的意思就是回归,即从下向上进行。也就是说当你拿到了一个复杂的东西,你不知道怎么解决。你可以对他进行拆解,拆解到你能解决的情况,然后从你能够解决的情况入手逐步解决你上层不能解决的问题。打个比方,你要求5的阶乘,学过数学的同学应该知道5!=5*4*3*2*1,但是5!交给计算机怎么处理呢,他可不知道5的前一个整数是4。所以就得写一个递归算法来帮助求解决。通过上式可以发现:5!=5*(5-1)!,4!=4*(4-1)!,3!=3*(3-1)!,2!=2*(2-1)!,1!=1;(以上的思想就是“递”的体现),一开始你无法得知5!是多少,但是你可以将他进行拆解,拆解为5*4!,然后依次逐层递推,就可以得到最简单的,计算机也知道的1!=1。得到1!=1后(即递推到了最底层),这时就可以回归了,回归也是一步一步来的。得到了1!=1;将该值返回给2!,就得到2!=2*1(此处的1是由1!=1得到的),以此方法逐层回归,最后即可得到5!的值。以上例子很好的体现了递归的思想。以下是该例子的代码部分。

 

另一个递归的例子是费波拉契数列,其核心思想也是递归,与阶乘的算法大致相同,不再做过多阐述,以下是代码

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值