Algorithm Python中的Reversed是否占用O(1)内存?

Algorithm Python中的Reversed是否占用O(1)内存?,algorithm,sorting,time,time-complexity,Algorithm,Sorting,Time,Time Complexity,我们可以使用for循环轻松地就地实现反向函数。这需要O(n)时间和O(1)内存,因为我们只是交换到n/2(不确定这是ceil还是floor) Python中的reversed函数是否使用这种就地交换方法?因此是O(1)memory?reversed返回迭代器;它不修改原始序列,既不在位也不生成新对象。所以它不需要超过O(1)的空间 如果收集迭代的值,您将创建一个新的容器,这显然需要与原始容器相等的空间 您可以使用[].reverse()对列表进行在位(O(1)空格)反转。反转返回迭代器;它不修改

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


Python中的
reversed
函数是否使用这种就地交换方法?因此是
O(1)
memory?

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

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


您可以使用
[].reverse()
对列表进行在位(O(1)空格)反转。

反转
返回迭代器;它不修改原始序列,既不在位也不生成新对象。所以它不需要超过O(1)的空间

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

您可以使用
[].reverse()
对列表进行在位(O(1)空格)反转。

如果您的意思是,那么它所做的只是创建一个迭代器,而不是创建一个新容器。如果您的意思是,那么它所做的只是创建一个迭代器,而不是创建一个新容器。