python中copy()的计时复杂性。如何添加经过的时间?
我正在尝试查看copy()复制列表需要多长时间。它应该是O(n),因为copy()一次遍历一个列表项。如何获取“elapsedtime”以跟踪它以前的价值?此代码将经过的时间重置回0。我非常感谢任何帮助修复代码,甚至更多 如果您想获得python中copy()的计时复杂性。如何添加经过的时间?,python,python-3.x,Python,Python 3.x,我正在尝试查看copy()复制列表需要多长时间。它应该是O(n),因为copy()一次遍历一个列表项。如何获取“elapsedtime”以跟踪它以前的价值?此代码将经过的时间重置回0。我非常感谢任何帮助修复代码,甚至更多 如果您想获得elapsedtime的所有先前值,请使用以下代码运行时间列表为您保存这些值 import timeit def copytest(): lst = [] for i in range(1000000): lst.append(i) starttime
elapsedtime
的所有先前值,请使用以下代码<代码>运行时间列表为您保存这些值
import timeit
def copytest():
lst = []
for i in range(1000000):
lst.append(i)
starttime = timeit.default_timer()
copiedlst = lst.copy()
endtime = timeit.default_timer()
elapsedtime = endtime - starttime
elapsedtime += elapsedtime
return elapsedtime
for j in range(1, 100):
print(j, copytest())
这段代码能够识别复制命令的复杂性。它是O(n),其中n是要复制的元素数。给出的程序基本上每次都复制相同的东西,n不变;因此,每次输出都是恒定的(有一些随机变化,但是平均值是相等的)。顺便说一句,你的循环相当于
lst=list(范围(1000000))
,但是为什么你一直在copytest
中重新创建它呢?不管怎样,你为什么不一直把copytest()
的结果加在一起呢?但你到底为什么要这么做?这并不能说明时间复杂性,您的输入总是相同的。您想累积elapsedtime
值,还是只想将它们存储在某个可以访问它们的地方?我不知道如何计算复制的时间复杂度抱歉,因此此代码足以检查复制命令的复杂度?是,这就足以检查copy命令的时间复杂度了。它满足你的要求了吗?如果有,请接受并投票。谢谢
import timeit
def copytest():
lst = []
for i in range(1000000):
lst.append(i)
starttime = timeit.default_timer()
copiedlst = lst.copy()
endtime = timeit.default_timer()
elapsedtime = endtime - starttime
elapsedtime += elapsedtime
return elapsedtime
elapsed_list = []
for j in range(1, 100):
e = copytest()
elapsed_list.append(e)
print(j, copytest())
import timeit
def copytest(n):
lst = list(range(1000000))*n
starttime = timeit.default_timer()
copiedlst = lst.copy()
endtime = timeit.default_timer()
elapsedtime = endtime - starttime
elapsedtime += elapsedtime
return elapsedtime
for j in range(1, 100):
print(j, copytest(j))