递归理解

解释1:

假设我们现在都不知道什么是递归,我们自然想到打开浏览器:输入到谷歌的网页,点击搜索递归,然后在为维基百科中了解到了递归的基本定义。在了解到了递归实际上是和栈有关的时候,你又蒙圈了,什么是栈呢?数据结构没学清楚,此时的你只能又打开谷歌,搜索什么是栈。接下来你依次了解了内存/操作系统。在你基本了解好知识之后,你通过操作系统了解了内存,通过内存了解了栈,通过栈了解了什么是递归这下你恍然大悟!原来这就是递归啊!

参考:什么是递归?先了解什么是递归   https://www.cnblogs.com/Pushy/p/8455862.html

解释2:

可以把递归看成是自己调用另一个和自己功能一样,但是函数名不同的函数来理解,

参考:彻底理解递归,从递归的本质说起!   https://blog.csdn.net/allenchenhh133/article/details/80291252

解释3:

确定了三个要素:递 + 结束条件 + 归

 递归的基本思想是广义地把规模大的问题转化为规模小的相似的子问题或者相似的子问题集合来解决。广义针对规模的,规模的缩小具体可以是指递归函数的参数,也可以是其参数之一。相似是指解决大问题的方法和解决小问题的方法往往是同一个方法,还可以是指解决子问题集的各子问题的方法是同一个方法。解决大问题的方法可以是由解决次规模问题的方法和解决剩余部分的方法组成,也可以是由一系列解决次规模问题的方法组成。

参考: 怎么更好地终极理解递归算法 https://blog.csdn.net/StruggleShu/article/details/51051140 解释的不错

解释4:

 

理解:递归调用可以看成是把调用函数看成是另一个功能一样不同命的函数,在调用的过程中,总会有未能完成的语句,此时保留入栈,待递归到结束条件后,开始返回,并将之前入栈的参数跳出执行。相当于将一个大规模大的问题分解为小的问题,直到小规模的问题可以解决

参考:大话数据结构 

递归和迭代、动态规划、 分治、贪心的区别与联系

待续!

参考:递归、分治策略、动态规划以及贪心算法之间的关系 https://blog.csdn.net/tyhj_sf/article/details/53969072写的不错

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heda3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值