关于递归

什么是递归?

任何函数调用自己都叫做递归,不管是直接的还是间接的,递归方法通过调用自己来解决一个问题的一部分。这就叫递归步骤。递归步骤一般会引发一系列的递归(当然了这是废话,不然就不叫做递归了)。这里面有一个重要的点就是要确保你的递归函数有个终止条件(不然的话就出不来了)。每一次的递归都是解决原问题的一个小问题,并且这个小问题是原问题的一个副本(像套娃一样,一层比一层小但是除了代销其他方面都很相似),一系列的小问题解决后必须能解决最终要解决的问题(也是废话,想看到套娃里面的东西,你要一层一层的打开看,最终才能看到里面是什么)。

为什么要用递归呢?

递归是从数学中借用的方法。因为有些问题用递归写出来的代码比循环代码要短小,一般来说,循环代码在编以或是解释后都回变成递归结构。对于可分成一系列相似的子任务的任务,递归使用起来就很方便了。例如:排序,搜索,遍历等问题都有相应的递归解决方法。

递归函数的格式

递归函数通过调用自己来解决一个任务的子任务。到某个点,函数遇到的子任务它再不需要调用自己就能解决的时候(类似打开到最后一层),这一层叫做base case,相应的前面的都要调用自己的子任务也有名字,叫做recursive case。下面句式递归函数的一般形式:

if( test for the base case )
    return some base case value;
else if( test for another base case )
    return some other base case value;
// the recursive case
else
    return ( some work ) and then ( a recursive call )

转载于:https://www.cnblogs.com/programnote/p/4713377.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值