递归

1、递归

  函数的递归调用;

  fun1()-->fun2()-->fun3()-->fun1()   间接递归

  fun1()<-->fun1()   直接递归


2、递归调用的性质特点

  (1)、函数的调用存在系统资源的消耗,空间及时间的消耗;

  (2)、函数的递归调用往往都比较深,因此会产生大量的系统资源的消耗;

  (3)、函数的递归调用,若不注意调用的规模(即深度),很容易造成系统资源不足时崩溃的结果;

  (4)、递归调用比较符合数学递归定义,因此递归程序都比较好被证明相关算法的正确性及完备性;

  (5)、可以先通过递归算法验证程序,在转换成非递归算法以保证效率和安全;


3、递归调用的模型图

  每次都得进行形参压栈,保存现场信息,此时变量名称相同,但是已经是在不同的函数中,具有不同的生命周期;

模型图:

wKioL1gxEpqB8AHEAAAcY_tePyY524.png-wh_50


4、递归程序的设计思路

  (1)、首先要写出递归的结束条件;

  (2)、其次先只想当前的递归程序该怎么操作(不要去想上一次/下一次的递归),并写出有效代码;

  (3)、然后在着重考虑与下一次在调用上的递进关系,此时通过参数加以实现;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值