space 复杂度的定义

Definition of space complexity

通过时间复杂度,我们将算法的 运行 时间理解为输入大小(表示内存中的实例所需的位数)的函数。那么关于这个观察,我们如何定义 space 复杂性?显然跟实例的大小关系不大...

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

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

希望对您有所帮助!