我对python(3.3)还比较陌生,我只是尝试在一个单词列表中进行二进制搜索,当涉及到循环索引时,我不知道如何修复操作数类型。。。我继续得到TypeError。想不出办法绕过它
def find(L, target):
start = 0
end = len(L) - 1
while start <= end:
middle = (start + end)// 2
midpoint = L[middle]
if midpoint > target:
end = midpoint - 1
elif midpoint < target:
start = midpoint + 1
else:
return midpoint
我这样调用函数:
L=[“布莱恩”,“梅格”,“彼得”,“乔”,“斯图伊”,“露易丝”]
查找(L,“Joe”)
如其他人所指出的,使用中间点而不是中间点
要优化使用二进制搜索,请先对列表排序
您的逻辑似乎很好,除了输入和中间点递增和递减而不是中间点的错误。
相关问题 更多 >
编程相关推荐