递归算法流程图(什么叫递归图解)

1、什么叫递归函数在Python中,在函数内部,可以调用其他函数。如果一个函数在内部调用自己,它就是一个递归函数。2、递归的应用场景递归是一种编程思想,其应用场

递归算法流程图(什么叫递归图解)插图

1、什么叫递归函数

在Python中,在函数内部,可以调用其他函数。如果一个函数在内部调用自己,它就是一个递归函数。

2、递归的应用场景

递归是一种编程思想,其应用场景:

在我们日常开发中,如果要遍历一个文件夹下面所有的文件,通常会使用递归来实现;在后续的算法课程中,很多算法都离不开递归,例如:快速排序。3、递归的特点1、递归函数必须有一个明确的结束条件。2、每进入更深一层的递归时,问题规模相对于上一层递归都会减少。3、相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输入就是作为后一次的输入)4、递归效率不高,递归层次过多会导致栈溢出。

总结编写递归函数时最重要的两点:

函数内部自己调用自己。必须有出口。4、应用:3以内数字累加和

实现代码如下:

"""#需求分析:3以内的数和3+2+1 = 6# 6 = 3+2和# 2 = 2+1和# 1 = 1 #导出& # 34;""DEF _ NUMBERS(数字):# 1。如果是1,直接返回1-exit #如果没有exit,给出错误:最大递归深度#递归错误:超过最大递归深度如果NUM = = 1: return1 # 2。如果不是1,重复累加并返回结果#上一个数的累加+当前个数-1并返回num+sum _ numbers(num-1)sum _ result = sum _ numbers(3)#输出结果为6print(sum_result)的递归函数执行流程图:

递归算法流程图(什么叫递归图解)插图(1)

5、应用:阶乘

def factorial(n): ''' 该函数用来求任意数的阶乘 参数: n 要求阶乘的数字 ''' # 基线条件 判断n是否为1,如果为1则此时不能再继续递归 if n == 1 : # 1的阶乘就是1,直接返回1 return 1 # 递归条件 return n * factorial(n-1)print(factorial(10))6、总结递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)理论上,所有的递归函数都可以写成循环的方式,但循环的逻辑不如递归清晰。递归编写起来比较难,但优点是定义简单,逻辑清晰。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/110788.html

发表回复

登录后才能评论