我想用我在网上找到的东西来计时这个搜索算法
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
在函数中删除该参数,但是我需要它才能起作用。有小费吗?
该searchlinear
函数需要2个参数。但是,在下一行中,您仅传递了数组。您还必须传递第二个参数:
stmt = f"{algorithm}({array})"
因此,将其更改为:
someValue = 7 # any number you want to search
stmt = f"{algorithm}({array}, {someValue})"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句