程序性能是指一个程序对内存和时间的要求,因此空间复杂度和时间复杂度对衡量一个程序的性能而言颇为重要。
1、空间复杂度——即该程序的运行所需内存的大小
程序所需空间由指令空间、数据空间及环境栈空间组成;
a、指令空间是指编译之后的程序指令所需要的存储空间(不同编译器编译同一段代码所占的指令空间可能不同)
b、数据空间是指所有常量和变量所需的存储空间(包含常量和简单变量,以及动态对象所需的空间)
c、环境栈空间用来保存暂停的函数和方法在恢复运行时所需要的信息,当一个函数被调用时,函数的返回地址和正在调用的函数的所有局部变量的值以及形参的值都会被保护在环境栈中。
实例特征:程序
处理的问题实例都有一些特征,例如,对n 个元素排序的程序,所需的空间大小是n的函数,n就为其实例特征。
可把一个程序所需空间分成两部分:
a、固定部分,独立于实例特征(通常包括指令空间,简单变量空间和常量空间等)