尾递归笔记

尾递归笔记


1.普通递归
 
       是在每次fact(n-1)时开辟一块栈内存存放之前的计算结果。
    特点是空间占据量随时间增长。
     o(n)的空间。

2.尾递归


      是在每次fact(num-1,num*product)一次就已经把结果算出来了,这样就在需要开辟新栈时只要把旧的栈覆盖即可,因为计算结果已经有了。
    特点是只需要占用一个函数栈。
    o(1)空间。
    当然了,是不是每次都只用一个栈空间还是看语言的编译器支不支持尾递归优化的。支持优化的话就像上文说的,新的函数栈覆盖旧的就达到了o(1)的目的,但是若编译器不支持优化,那么每次同样会去开辟一个新的函数栈空间,那么还是o(n)的空间。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值