gpt4 book ai didi

Python 计时 - 一定有更好的方法!

转载 作者:太空宇宙 更新时间:2023-11-03 12:19:41 26 4
gpt4 key购买 nike

我希望有人能帮我解决这个问题。我想测量排序算法。这是我目前的做法:

M = 1000 # number of executions
N = [1000, 2000, 4000, 16000] # size of the list
L = [100, 1000, 2000,16000] # max element of the list

# timing:
print 'Number of executions: %i' % (M)
print '-'*80
print '\tL\N\t|\t%i\t|\t%i\t|\t%i\t|\t%i' % (N[0], N[1], N[2], N[3])
print '-'*80
for l in L:
print '\t%i\t' % l,
for n in N:
t = 0
for m in xrange(M):
A = [random.randint(0,l-1) for r in xrange(n)] # generates an n long random list
t0 = time.clock()
pass # sort function call goes here
t1 = time.clock()
t += (t1-t0)
print '|\t%0.3f\t' % ((t*1000.0)/M ), # avg time
print
print '-'*80

这个空测试大约需要 4 分钟。我将不胜感激有关如何使其更快的任何建议。

干杯

编辑:在 Rafe Kettler 的提示下,我想到了这个:

def sorting(LST):
pass

if __name__ == "__main__" :
M = 1000
N = [1000, 2000, 4000, 16000]
L = [100, 1000, 2000,16000]

print 'Number of executions: %i' % (M)
print '-'*80
print '\tL\N\t|\t%i\t|\t%i\t|\t%i\t|\t%i' % (N[0], N[1], N[2], N[3])
print '-'*80
for l in L:
print '\t%i\t' % l,
for n in N:
#------------------------
t = timeit.Timer('sorting([random.randint(0,l-1) for r in xrange(n)])', 'from __main__ import sorting, n, l, random')
#------------------------
print '|\t%0.3f\t' % (t.timeit(M)/M ), # avg time
print
print '-'*80

不幸的是它变慢了。我做错了什么?

最佳答案

timeit .在 Python 中计时的最佳方式,句号。将您的算法重构为函数并使用 timeit 测试执行时间。

关于Python 计时 - 一定有更好的方法!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4160006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com