【发布时间】:2022-01-25 15:40:24
【问题描述】:
准备面试,这是我找不到的。 https://blog.finxter.com/python-list-reverse/#:~:text=The%20time%20complexity%20of%20the,the%20number%20of%20list%20elements。说 .reverse() 是 O(n) 我认为是因为它替换了每个索引。是 [::-1] 只是向后打印列表还是发生了类似的事情
【问题讨论】:
-
“替换所有索引”是什么意思?我可能已经这样做太久了,但我无法想象你会如何在 not O(n) 中做到这一点,所以我不清楚你在问什么跨度>
-
“是 [::-1] 只是向后打印列表”—不,[::1] 没有打印任何内容:它正在向后切分列表以创建新列表。
-
我的问题是如果使用 [::-1] 是内存中的同一个列表,只是从末尾读取到前面。如果 [::-1] 返回一个副本,那么它是一个 O(n) 操作,但是如果只是在内存中返回具有不同参考点的相同数组,那么就没有像 .reverse() 那样对数组进行操作 where数组的元素相互替换
标签: python time-complexity big-o