在Python中被尊重需要O(1)内存吗?

时间:2018-01-16 17:57:26

标签: algorithm sorting time time-complexity

我们可以使用for循环轻松实现反向功能。这需要O(n)时间和O(1)内存,因为我们只是交换直到n / 2(不确定这是ceil还是floor)。

Python中的reversed函数是否使用了这种交换方法?因此是O(1)记忆?

1 个答案:

答案 0 :(得分:2)

reversed返回迭代器;它既不会修改原始序列,也不会修改原始序列,也不会生成新对象。因此它不需要超过O(1)空间。

如果收集迭代的值,您将创建一个新容器,显然需要与原始容器相当的空间。

您可以使用[].reverse()执行列表的就地(O(1)空格)反向。