算法图解——第三章递归笔记

一、基本要求

编写递归函数时,必须告诉它何时停止递归。正因为如此,每个递归函数都有两部分:基线条件和递归条件。递归条件指的是函数调用自己,而基线条件则指的是函数不再调用自己,从而避免形成无限循环。

二、栈

用于存储多个函数的变量,被称为调用栈。在调用另一个函数时,当前函数暂停并处于未完成状态,该函数所有的变量的值都还在内存中。

栈有两种操作:压入和弹出。

递归函数调用的栈被称为递归调用栈

每个函数调用都有自己的x变量。在一个函数调用中不能访问另一个的变量。

PS:使用栈虽方便,但存储详尽的信息可能占用大量的内存。每个函数的调用都要占用一定的内存,如果栈很高,就意味着计算机存储了大量函数调用的信息。在这种情况下,有两种选择:1.重写代码,使用循环。2.使用尾递归。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值