博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
尾递归笔记
阅读量:4031 次
发布时间:2019-05-24

本文共 287 字,大约阅读时间需要 1 分钟。

尾递归笔记
1.普通递归
 
 
    
是在每次fact(n-1)时开辟一块栈内存存放之前的计算结果。
    特点是空间占据量随时间增长。
    
o(n)的空间。
2.尾递归
 
    是在每次fact(num-1,num*product)一次就已经把结果算出来了,这样就在需要开辟新栈时只要把旧的栈覆盖即可,因为计算结果已经有了。
    特点是只需要占用一个函数栈。
    o(1)空间。
    当然了,是不是每次都只用一个栈空间还是看语言的编译器支不支持尾递归优化的。支持优化的话就像上文说的,新的函数栈覆盖旧的就达到了o(1)的目的,但是若编译器不支持优化,那么每次同样会去开辟一个新的函数栈空间,那么还是o(n)的空间。
你可能感兴趣的文章
Jlink + ADS调试 S3C2440
查看>>
2440初始化存储器原理(接上一篇)
查看>>
S3C2440 USB 设备控制器(转)
查看>>
Linux usb 设备驱动 (1)
查看>>
解决跨网场景下,CAS重定向无法登录的问题(无需修改现有代码)
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
关于静态块、静态属性、构造块、构造方法的执行顺序
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
idea讲web项目部署到tomcat,热部署
查看>>
优化IDEA启动速度,快了好多。后面有什么优化点,会继续往里面添加
查看>>
JMeter 保持sessionId
查看>>
IDEA Properties中文unicode转码问题
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>