我想测试下面的test1(n)函数的Big-O性能,所以我试图使用timeit来查看性能。但是,现在的代码并没有产生任何东西......
我认为问题出在t1 = timeit.Timer行,参数没有传入test1(n)函数。我不知道如何解决它。有帮助吗?谢谢!
def test1(n):
for i in range(n):
for j in range(n):
k = 2 + 2
if __name__ == '__main__':
import timeit
for i in range(1000000, 100000001, 1000000):
t1 = timeit.Timer("test1(i)", setup="from __main__ import test1")
x = list(range(i))
tm = t1.timeit(number=1000)
print x
print("%15.5f" % tm)
编辑:
结果就是它的二次方 为O(n ^ 2)
答案 0 :(得分:1)
您还需要导入i
:
t1 = timeit.Timer("test1(i)", setup="from __main__ import test1, i")
必须明确导入要测试的语句中使用的每个名称。定时代码不会触及名称x
(绑定到i
的范围),打印它不会有任何区别。