空间复杂性的定义

时间:2015-02-04 22:43:20

标签: complexity-theory time-complexity space-complexity

通过时间复杂度,我们将算法的运行时间理解为输入大小(表示存储器中实例所需的位数)的函数。那么我们如何定义空间复杂性呢?它显然无法与实例的大小相关...

1 个答案:

答案 0 :(得分:5)

空间复杂性可以通过多种方式定义,但通常的定义如下。我们假设输入存储在某处的只读存储器中,存在用于存储操作结果的专用只写存储器,并且存在用于进行辅助计算的一些通用“暂存空间”存储器。通常,空间复杂度是存储输出和所有临时空间所需的空间量。例如,二进制搜索具有空间复杂度O(1),因为只需要O(1)存储空间来存储输入和输出(假设数组索引适合机器字)。

有时,输入和输出空间被组合到一个存储单元中,并且可以修改输入。例如,在此模型中,heapsort具有空间复杂度O(1),而mergesort具有合并所需的辅助存储空间的空间复杂度O(n)。

希望这有帮助!