算法小碎片(一)
来源:互联网 发布:学佛软件下载 编辑:程序博客网 时间:2024/05/17 04:36
简单了解空间复杂度(Space complexity)
空间复杂度(Space complexity)=指令空间(instruction space)+数据空间(data space)+环境栈空间(environment stack space)
指令空间(instruction space)的决定因素:编译器、编译器配置、目标机。编译器是决定代码最终占用存储空间多少的一个最为重要的因素。编译器在配置为优化模式下和非优化模式下,产生的结果也是不同的。目标机的不同也会对编译结果有影响(例如是否具有浮点处理单元)。
数据空间(data space)包括:常量和简单变量占用空间、动态数组及动态实例占用空间,两个部分。大多数编译器对于变量的存储空间都有定义,但不一定相同。
环境栈空间(environment stack space)是一个常不被人熟知部分,或许和人们不曾关注函数调用及调用结束时期的细节有关?实际上,在此过程中环境栈起着保存数据的重要作用。通常被保存的数据包括:返回地址和当前调用的函数的全部局部变量以及形式参数。环境栈空间(environment stack space)中的递归栈空间(recursion stack space)尤其值得关注。递归栈空间(recursion stack space)和递归函数的局部变量占用空间、形式参数占用空间以及递归调用深度密切相关。通常把尾递归(tail recursion)转化为迭代可以起到优化作用。
固定空间= 指令空间+简单变量空间+常量空间
可变空间= 动态分配空间+递归栈空间
阅读全文
0 0
- 算法小碎片(一)
- 算法小碎片(二)
- C语言小碎片一
- Android碎片(一)
- java算法碎片(一)[约瑟夫环]
- 小碎片
- 碎片页介绍(一)
- C#碎片整理(一)
- java小算法(一)
- 碎片一
- ADO.NET的记忆碎片(一)
- QT编程的知识碎片(一)
- java算法小程序(一)
- 内存碎片小实验
- 算法小白总结(一)-----什么是算法?
- Fragment碎片(小activity)定义及用法
- 算法题/字符串碎片
- 记忆碎片一
- 深度学习参考资料
- MyBatis(3)getMapper()的实现
- Python自动化运维笔记(二):Python中的IP地址处理模块IPy的使用
- 1、编写一个无参的构造函数; 2、编写一个有参的构造函数; 3、在主函数中调用无参的构造函数生成圆的实例c1,调用有参的构造函数生成圆的实例c2,调用实例方法判断c1和c2是否相重叠。
- 循环神经网络
- 算法小碎片(一)
- 算法练习--汉诺塔问题
- php array_push 与 $arr[]=$value 性能比较
- (spring全家桶十)Spring Statemachine有限状态机与地址分析
- cookie安全配置相关漏洞修复
- tarantool知识整理(1)
- 机器学习(周志华西瓜书)参考答案总目录
- Python基本类型
- 驱动中获取PsActiveProcessHead变量地址的五种方法