python - Python sorted() 函数空间复杂性
问题描述
我知道 sort() 是 O(1) 空间,因为排序已经到位。但是, sorted() 函数返回一个包含已排序元素的新列表。既然 sorted() 返回一个带有排序元素的新数组,这是否意味着使用 sorted() 函数的算法需要 O(n) 空间来执行?sorted() 与创建一个数组并复制所有元素,然后在该新数组上运行 sort() 是否相同?
for i in sorted(some_list):
// do something
解决方案
sorted()
使用 Timsort:https ://en.wikipedia.org/wiki/Timsort ,它具有 O(n) 空间复杂度。
推荐阅读
- c++ - MQTT ACL 文件使用
- java - HashTable - 在重新散列中间更改数组大小
- package - Unexpected Token - Atom 教程 - WordCount
- angular - 将引导程序 4 降级到 3.3 角度
- java - 在 Android Studio 中使用 JSoup 获取类头下的文本
- c - c中迷宫程序中的分段错误
- c++ - WINAPI C++ GetDlgItem 不返回有效句柄
- php - 我可以从脚本标签调用我的数据库数据吗?
- docker - 如何在不每次都重新创建容器的情况下提供 html 文件?
- apache-kafka - 是否可以为 Google Pub/Sub 主题定义架构,例如在 Kafka 中使用 AVRO?