大家好,欢迎来到IT知识分享网。
什么是递归函数
所谓递归函数,就是在一个函数体内调用它自身。递归函数包含了一种隐藏的循环,它会重复执行某段代码,但是这种重复无需循环显式控制。
递归函数使用需要有两大要素:
- 递归调用的方法
- 终止条件
递归函数示例
以最典型的递归函数求阶乘(factorial)为例:
比如说要计算5的阶乘: factorial(5) = 5*factorial(4) factorial(4) = 4*factorial(3) factorial(3) = 3*factorial(2) factorial(2) = 1*factorial(1) factorial(1) = 1 # 这个是程序的出口
- 代码
def factorial(n): if n==1: return 1 return n*factorial(n-1) # 调用 print(factorial(5))
递归调用内存分析
递归调用优点和缺点
- 优点:
- 递归使代码看起来更加整洁、优雅
- 可以用递归将复杂任务分解成更简单的子问题
- 缺点:
- 虽然有代码简洁的优点,但是时间和空间消耗比较大;
- 每一次函数调用都需要在内存栈中分配空间以保存参数,返回地址以及临时变量,而且往栈里面压入数据和弹出都需要时间;
- 递归还有栈溢出的问题,每个进程的栈容量是有限的;
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/50845.html