Space 复杂度与辅助 Space 复杂度

Space Complexity Vs Auxiliary Space Complexity

我对这两个术语有点困惑,例如 - 合并排序、堆排序和插入排序的辅助 space 是 O(1) 而合并排序的 Space 复杂度,插入排序,堆排序是O(n)。

所以,如果有人问我 Space 合并排序、堆排序或插入排序的复杂度是多少,那么我应该告诉他们 O(1) 还是 O(n)?

此外,请注意在选择排序的情况下,我读过它的 Space 复杂度是 O(1) 这是辅助的 space.

那么,是否有可能使用 "in-place computation" 的算法,对于那些我们提到辅助 space 的算法?

而且我知道 -

Space Complexity = Auxiliary Space + space 也被输入。

请帮忙,谢谢!

看O(n)的时候,需要明白它的意思。就是"IN THE WORST CASE IT WILL BE N"。我使用 http://bigocheatsheet.com/ 作为参考点。

当您查看 space 复杂性时,他们会想知道在给定时间点内存中将保留多少内容。这不包括基本结构。他们想知道排序需要多少额外的 space 才能相应地执行。不同之处在于需要完全在内存中的结构。

关于你的第一个问题,它最多会占用 N space,但你的操作在内存中的总量将是 O(1)。

当您处理 SORTS 时,正如您在上面所列,它们大多只是 O(1),因为它们实际上只需要 tmp space 在交换发生时保存东西。数据结构本身需要更多 space,因为它们在内存中具有特定的大小,可以满足需要发生的任何操作。

我经常使用链接网站..