Algorithm 空间复杂度与辅助空间复杂度

Algorithm 空间复杂度与辅助空间复杂度,algorithm,sorting,space-complexity,Algorithm,Sorting,Space Complexity,我有点混淆了这两个术语,例如,合并排序、heapsort和插入排序的辅助空间是O(1),而合并排序、插入排序、heapsort的空间复杂度是O(n) 那么,如果有人问我合并排序、堆排序或插入排序的空间复杂度是多少,那么我应该告诉他们O(1)或O(n) 另外,注意在选择排序的情况下,我读到它的空间复杂度是O(1),这是辅助空间 那么,是否可能使用“就地计算”的算法,对于这些算法,我们提到辅助空间 此外,我知道- 空间复杂度=辅助空间+wrt输入占用的空间 请帮忙,谢谢 当看到O(n)时,你需要理解

我有点混淆了这两个术语,例如,合并排序、heapsort和插入排序的辅助空间是O(1),而合并排序、插入排序、heapsort的空间复杂度是O(n)

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

另外,注意在选择排序的情况下,我读到它的空间复杂度是O(1),这是辅助空间

那么,是否可能使用“就地计算”的算法,对于这些算法,我们提到辅助空间

此外,我知道-

空间复杂度=辅助空间+wrt输入占用的空间

请帮忙,谢谢

当看到O(n)时,你需要理解它的含义。这是“在最坏的情况下是N”。我用它作为参考点

当你观察空间复杂性时,他们会想知道在给定的时间点内存中会保存多少。这不包括基础结构。他们希望知道排序需要多少额外空间才能相应地执行。区别在于结构需要完全在内存中

关于你的第一个问题,它最多会占用N个空间,但是内存中为你的操作保留的总量是O(1)

当您处理排序时,正如上面列出的,它们大多只是O(1),因为它们实际上只需要tmp空间来容纳交换发生时的内容。数据结构本身需要更多的空间,因为它们在内存中有一个特定的大小,可以处理任何需要进行的操作


我经常使用链接的网站。

你可能会在网站上得到更好的答案,好的!!!!!!!!!!!在我们谈话时,我正在研究你的答案。“占用N个空间”--它们也可以占用10N、1000N或0.001N。或者它们可以占用4N+3sqrt(N)+10log N+10000。这是一个N的最大幂为1的量。@fallereneaper非常感谢,先生。