Python 试图通过绘制图形来可视化时间复杂性,意外输出
我定义了一个简单的函数,用于计算列表中元素的总和。它具有线性复杂性。我尝试如下方式可视化图形(X轴表示n=列表中的元素数量,Y轴表示计算列表中包含n个元素的元素之和所需的时间): 图形输出不是线性的。而且,每次我重新运行时,输出都会发生变化。Python 试图通过绘制图形来可视化时间复杂性,意外输出,python,time,time-complexity,Python,Time,Time Complexity,我定义了一个简单的函数,用于计算列表中元素的总和。它具有线性复杂性。我尝试如下方式可视化图形(X轴表示n=列表中的元素数量,Y轴表示计算列表中包含n个元素的元素之和所需的时间): 图形输出不是线性的。而且,每次我重新运行时,输出都会发生变化。 我正在使用Macbook Pro,有许多chrome窗口,打开了许多带有youtube链接的选项卡,但都已暂停。这会影响图形还是我在绘图时遗漏了什么?尝试将X值设置得更大,可能会高达1000,如果速度太慢,则降低1000常量(运行函数的次数)。您的代码没有
我正在使用Macbook Pro,有许多chrome窗口,打开了许多带有youtube链接的选项卡,但都已暂停。这会影响图形还是我在绘图时遗漏了什么?尝试将X值设置得更大,可能会高达1000,如果速度太慢,则降低1000常量(运行函数的次数)。您的代码没有任何作用,它只是定义了一个函数,
code\u to\u test
但从不调用它。@MaisyDoge13:使用X=[50、100、200、300、400、500、600、700、800、900]尝试了您的建议,并且将1000减少到100,但没有区别:(@anz我已经向您解释过,您的X
不起任何作用,也不影响正在计时的代码,它只是定义了一个函数,从不调用它。
import matplotlib.pyplot as plt
code_to_test='''
def find_sum(input_list):
total =0
for i in input_list:
total +=i
return total
'''
X=[5, 10, 15, 20, 25, 30, 35, 40, 45, 50]
Y=[]
for n in X:
input_list=list(range(n))
elapsed_time=timeit.timeit(code_to_test, number=1000)/1000
Y.append(elapsed_time)
print(len(Y))
plt.plot(X,Y)