递归与尾递归

说到递归,很容易想到数学归纳法。

递归,通过反复对函数自身的调用来实现,有递的过程,也有归的过程。普通的递归,在递的过程中依赖着函数的返回值,每递一步,都需要将前一步的信息压栈,在归的过程中,再一步步出栈,直到结束。尾递归,作为递归的特例,指递归调用发生在过程中最后一个语句,它的返回值不再参与运算。尾递归的特征决定了在层层调用的过程中,老的堆栈信息已没有任何意义,所以大部分的编译器在发现是尾递归时,会做优化处理,老的堆栈信息将被新的堆栈所覆盖,所以尾递归不存在普通递归随着递归层次增加可能导致堆栈溢出的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值