《数据结构基础》
作者: [美]Ellis Horowitz 霍罗维兹
译者: 朱仲涛
出版社: 清华大学出版社
ISBN: 9787302186960
在 豆瓣读书 中查看本书
空间复杂度
定义:空间复杂度是程序运行所需的存储空间。
程序运行时所需的空间包括两部分:
- 定长空间需求:即与程序输入、输出无关的空间,包括 指令空间(存储代码的空间)、简单变量的存储空间、定长结构变量(如结构体)的存储空间、常量存储空间。
-
变长空间需求:即与求解的问题实例相关的结构化变量所占空间大小。
如果是递归程序,还应加上递归时所需工作空间的大小。
给定问题实例I,程序P的变长空间记为SP(I)。
SP(I)通常为自变量定义在I的特征空间之上的一个数学函数。
这些特征常常表现为关于I的输入、输出个数、长度或取值。
例如:若输入是长度为n的数组,则n是一个实例特征,如果n是唯一的实例特征,那么SP(I)可以具体化为SP(n)。
任何程序所需空间总量是:
SP(I) = c + SP(I)
其中c表示定长空间需求。
举例
- C语言的参数传递方法虽然也是传值调用,但如果传递的是数组参量,C只传递数组第一个元素的首地址,并不复制整个数组。(书P19,例1.7)