【发布时间】:2021-04-03 11:36:29
【问题描述】:
我想用我在互联网上找到的东西来计时这个搜索算法
L=[8,2,1,111,8,3,4,6,5,7,10,9,12,11]
v=10
def searchlinear(L, v):
i= 0
for value in L:
if value == v:
return i
i+= 1
return len(L)
from random import randint
from timeit import repeat
def run_algorithm(algorithm, array):
setup_code = f"from __main__ import {algorithm}" \
if algorithm != "sorted" else ""
stmt = f"{algorithm}({array})"
times = repeat(setup=setup_code, stmt=stmt, repeat=3, number=10)
print(f"Algorithm: {algorithm}. Minimum execution time: {min(times)}")
ARRAY_LENGTH = len(L)
array = [randint(0, 1000) for i in range(ARRAY_LENGTH)]
run_algorithm(algorithm="searchlinear", array=array)
不知何故,它显示了这个错误:
TypeError: searchlinear() 缺少 1 个必需的位置参数:'v'
我觉得我必须在我的函数中删除 v 参数,但我需要它才能工作。有什么建议吗?
【问题讨论】:
-
除了传递错误的参数外,您还在为列表构建计时。你应该把它放在设置中。
标签: python