这是什么意思:O(n)步和O(1)空间?

Dev*_*ted 26 computer-science

O(1)空间是什么意思?我知道O(n)步骤就像算法/程序的计算量级,但不知道O(n)空间是什么.

3le*_*gos 44

O(1)空间意味着算法所需的存储器是恒定的,即不依赖于输入的大小.

O(n)空间意味着算法所需的存储器(在最坏的情况下)具有与输入的大小相同的数量级.

编辑:添加两个示例:

  • Bubblesort需要O(1)空间.
  • Mergesort需要O(n)空间.

  • 如果你的递归调用每次调用时都使用新变量,那么它就是O(n)空间.如果您的迭代过程在循环中实例化了新变量而没有释放,那么O(n)也是如此.这一切都取决于您如何设计和编码算法. (2认同)