当前位置:首页 > 创业分享 > 正文内容

什么是递归?一文读懂

福瑞号2023-01-18 23:00:06创业分享426

一.什么是递归?

递归,就是在运行的过程中不断地调用自己。递归有两个过程,简单地说一个是递的过程,一个是归的过程。简单用代码来理解:

public void fun(参数) {

if (终止条件) {

return;

}

fun(参数);

(其他判断条件或语句);

}

在上边代码中,当第一次进入函数时,先判断是否符合终止条件,符合则直接结束函数,不符合入下一语句,调用自己重新进入下一层自身函数,(注意这是最外一层将不向下继续执行语句,外层卡在fun(参数处)),这个调用自己进入自身函数的操作过程即为“递”的过程。假设进入下一层后符合终止条件,返回结果,此时之前进入自身函数执行完成返回最外一层函数,最外一层函数递归调用处得到结果,(即内层函数执行完成得到结果返回值),这个过程即为“归”的过程。这时最外一层函数才能继续执行下一语句,直至函数运行完成。

什么是递归?一文读懂-图1

二.判断递归使用的场景

1.大问题可以拆分为多个子问题。

2.原问题和拆分后的子问题除了数据规模不同,解决思路完全相同。

3.存在递归终止条件。

递归在线性数据结构中使用不太明显,迭代基本可以很容易地解决问题。

递归在非线性结构中非常重要,比如二叉树,回溯,典型的树形问题-九宫格字母组合

三.递归代码的写法,(一定要注意方法的语义)

递归必须具备两个条件,

  • 一是有边界,即终止条件。

  • 二是需要调用自己。

这两个条件缺一不可,并且其中终止条件语句必须在递归调用语句之前。如果顺序颠倒则递归函数会进入死循环,永远退不出来,会出现堆栈溢出异常(StackOverflowError)。

在递归函数中,终止条件可以不止一个,递归调用也可以通过一些逻辑语句分成好几个。

四.讲一个简单且经典的实例(我认为的)

青蛙跳台阶问题:一只青蛙要跳上n层高的台阶,一次能跳一阶,也可以跳2阶,请问这只青蛙跳上n层高的台阶有多少种跳法?

问题解决:这个问题有好几种解法,这里就讲递归方法,这个问题需要逆向思维,如果从第一个台阶就开始算,就比较难想到终止条件,以及递归调用方式。我们可以让青蛙下台阶,一次可以下一个,也可以下两个。这时我们可以知道:

当n=1时,只有一种方法。

当n=2时,有两种方法。

其n>2时,青蛙可以选择跳两层台阶,也可以选择跳一层台阶。

以上我们可以得到,终止条件为台阶剩下1或2层时可以直接得到结果,即为边界。当n>2时我们可以使用递归语句调用自身。这样就可以写出递归代码:

public int climbStairs(int n){

//终止条件

if(n == 1)

return 1;

if(n == 2)

return 2;

//递归调用,此时青蛙可以选择跳一阶也可以跳两阶,所以将两种情况相加起来

return climbStairs(n-1) + climbStairs(n-2);

扫描二维码推送至手机访问。

版权声明:本文由福瑞号发布,如需转载请注明出处。

本文链接:http://furui.com.cn/42623.html

标签: 什么是递归

“什么是递归?一文读懂” 的相关文章

现代社会非洲三大暴君(伊迪阿明)

现代社会非洲三大暴君(伊迪阿明)

非洲从古至今有三大暴君,分别是指乌干达总统阿明、中非皇帝博卡萨和扎伊尔总统蒙博托,这三人因残暴的行事手段与恐怖的个人专制被国际社会上称为“非洲现代史上最残忍的三大暴君”。 而乌干达总统伊迪阿明,则位居三大暴君的榜首,拥有“非洲第一魔王”的称号,他更是与同样爱吃人的中非皇帝博卡萨并称为“吃人魔王”。不...

袁立和演员的诞生怎么回事(袁立与《演员的诞生》节目组矛盾细节回放)

袁立和演员的诞生怎么回事(袁立与《演员的诞生》节目组矛盾细节回放)

袁立一直都是一个非常神奇的女子,想当年在袁立还是一个演员的时候,为我们带来的《铁齿铜牙纪晓岚》成为了一个时代的回忆,后来袁立投身公益,也许一开始公益之路上布满了人们的不信和嘲笑,但袁立还是坚持了下来,直到今天成为了众人心目中钦佩的公益女神。 最近,袁立在微博上可是和浙江卫视撕了起来,不仅仅使得浙...

最火的网游排行榜前十名(现在最流行的十大网游)

最火的网游排行榜前十名(现在最流行的十大网游)

亲爱的小伙伴们,大家好,我是你们的大T。 网络游戏要比单机游戏更耐玩,更热门,寿命也更长,而且在线玩家也非常多,网络游戏不仅有着丰富的内容,最重要的是有更好的互动性,还能通过战斗和游戏生涯获得自己的成就,在这一点,很多玩家都对网络游戏感兴趣,那现在全网最流行的十大网络游戏你都知道哪些呢?你所玩过的都...

黑道小说排行榜前十名(黑道小说前十名)

黑道小说排行榜前十名(黑道小说前十名)

黑道小说前十名 你看过几本? 黑帮文,火拼激烈,场面宏大,情节血腥,黑暗情节严重,但也不乏一些蕴含人生道理的好书,今天就给大家盘点一下黑道小说前十名,看看你看过几本? 《坏蛋是怎样炼成的》 作者六道 《坏蛋是怎样炼成的》是首发于逐浪小说网的一部都市生活题材小说,作者是六道。该小说讲述了主人公谢文...

昆明十大著名寺庙(秋日佛系打卡)

昆明十大著名寺庙(秋日佛系打卡)

昆明到底有多少古寺庙宇? 千年建寺历史的「圆通禅寺」 颇有古寺禅院风味的「昙华寺」 闹市里的道观「真庆观」 ...... 今天带大家寻觅 那鲜为人知的静谧角落 礼佛、敬香、跪拜、祈福 圆通禅寺是昆明较大也较古老的寺庙,已有1200多年的建寺历史。 圆通禅寺在昆明算香火比较旺的寺庙了。...

丹麦的国旗是什么图案(全世界最为廉政的国家)

丹麦的国旗是什么图案(全世界最为廉政的国家)

丹麦王国(The Kingdom of Denmark , Kongeriget Danmark )代码DK(DNK)。 国名释义:在古高德语中,“丹”为“沙滩、森林”之意,“麦”是“土地、国家”之意。联合国首次发布“全球幸福指数”报告,全球156个国家和地区人民的幸福程度,丹麦成为全球最幸福国度...