我正在编写一个python程序来测试两个不同版本的quicksort。然后我决定将相同版本与自身进行比较,只是为了好玩。我很惊讶地发现,每次尝试时,代码中较低的版本都会更快。然后我用python排序函数替换了我的垃圾短片快速实现。同样的趋势还在继续!有谁知道这是为什么?
import random
from time import clock
randlist = lambda: [random.random() for i in range(random.randint(5, 100))]
n = 10000
sum1 = 0
sum2 = 0
for i in range(n):
l = randlist()
before1 = clock()
sorted(l)
sum1 += clock() - before1
before2 = clock()
sorted(l)
sum2 += clock() - before2
print("first go ", sum1 / n)
print("'second go", sum2 / n)
此代码输出以下内容(大致相同):
first go 9.162100000000225e-06
second go 8.210699999999926e-06
我只在我的机器上试过。我在i7-2670QM上运行Ubuntu 14.04和Python 3.4。
编辑:当两个"排序(l)"线条被注释掉了!唯一的区别是,两次都低了10倍。