我衡量对1000万条目列表进行排序所需的时间:
import time
a = range(10000000, 0, -1)
b = range(10000000, 0, -1)
start = time.time()
a.sort()
end = time.time()
print end - start
start = time.time()
sorted(b)
end = time.time()
print end - start
我得到的输出:
0.272000074387
0.468999862671
原因可能是因为sorted
更通用,但这与this post不一致
差异在大型名单中变得微不足道。是什么导致了巨大的差异?
我在32位Windows 7,Q6600处理器上使用python 2.7.3 32位。
答案 0 :(得分:6)
sort
版本在列表中就地运行,但sorted
制作列表的副本。当实际排序如此简单时(Timsort检测到整个列表是一个大的向后运行并反转它),副本的创建可能会对运行时产生重大影响。