import time
s = time.time()
def insertionSort(alist):
for index in range(1, len(alist)):
currentvalue = alist[index]
position = index
while position > 0 and alist[position - 1] > currentvalue:
alist[position] = alist[position - 1]
position = position - 1
alist[position] = currentvalue
alist = [54,26,93,17,77,31,44,55,20]
insertionSort(alist)
print (time.time() - s) # Result 0.0
我查找时间模块,但是作为新手阅读它我很难。我已经在搜索答案,它会衡量代码的开始和代码的结束。结果是0.0。请帮帮我。
答案 0 :(得分:1)
使用time.time
的方式没有任何问题。
打印0.0
的原因是代码运行得如此之快,以至于计时器根本没有改变。
为了说明我的观点,我已将代码循环了1000次。
import time
s = time.time()
def insertionSort(alist):
for index in range(1, len(alist)):
currentvalue = alist[index]
position = index
while position > 0 and alist[position - 1] > currentvalue:
alist[position] = alist[position - 1]
position = position - 1
alist[position] = currentvalue
for x in xrange(1000):
insertionSort([54,26,93,17,77,31,44,55,20])
e = time.time()
print (e - s)
输出:
0.00600004196167
如果您对代码性能感兴趣,可以使用一个名为timeit
的多路库,这对于这种情况很有用。
import timeit
t = timeit.Timer("insertionSort([54,26,93,17,77,31,44,55,20])", "from __main__ import insertionSort")
time = t.timeit(1000)
print(time)
输出:
0.00587430725292