下面的设置参数有什么问题?
import timeit
import random
from copy import copy
def shortBubbleSort(aList):
n = len(aList) - 1
iterating = True
while n > 0 and iterating:
iterating = False
for i in range(n):
if aList[i+1] < aList[i]:
iterating = True
aList[i], aList[i+1] = aList[i+1], aList[i]
n -= 1
return aList
L = []
for i in range(1,500):
L.append(random.randrange(0,1000000))
x = timeit.repeat("bubbleSort(copy(L))", setup="from __main__ import bubbleSort,copy,L",repeat = 100,number = 100)
y = (sum(x)/len(x))*100
print(str(y))我还尝试了以下几种方法:
setup="from __main__ import bubbleSort,from copy import copy"setup="from __main__ import bubbleSort,copy"setup="from __main__ import bubbleSort"追溯如下:
Traceback (most recent call last):
File "C:\Users\Administrator\AppData\Local\ActiveState\KomodoEdit\7.1\samples\bubbleSort TimeIt.py", line 24, in <module>
x = timeit.repeat("bubbleSort(copy(L))", setup="from __main__ import bubbleSort,copy,L",repeat = 100,number = 100)
File "C:\Python32\lib\timeit.py", line 235, in repeat
return Timer(stmt, setup, timer).repeat(repeat, number)
File "C:\Python32\lib\timeit.py", line 223, in repeat
t = self.timeit(number)
File "C:\Python32\lib\timeit.py", line 195, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 3, in inner
ImportError: cannot import name bubbleSort发布于 2014-01-05 17:47:25
可能是打错了。实际函数名为shortBubbleSort,您正在导入bubbleSort
在我的机器上,结果是
192.437240362发布于 2014-01-05 17:47:42
这是个错误。您的函数名为shortBubbleSort,而不是bubbleSort。这样做是可行的:
x = timeit.repeat("shortBubbleSort(copy(L))", setup="from __main__ import shortBubbleSort,copy,L",repeat = 100,number = 100)https://stackoverflow.com/questions/20936929
复制相似问题