python中的排序速度始终不一致

时间:2014-07-17 22:32:56

标签: python sorting python-3.x

我正在编写一个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倍。

0 个答案:

没有答案