我写了以下代码:
def binary_search(key,lst):
""" iterative binary search
lst better be sorted for binary search to work"""
n=len(lst)
lower=0
upper=n-1
outcome=None # default value
while lower<=upper:
middle=(upper+lower)//2
if key==lst[middle].name: # item found
outcome=lst[middle]
break # gets out of the loop if key was found
elif key<lst[middle].name: # item cannot be in top half
upper=middle-1
else: # item cannot be in bottom half
lower=middle+1
return outcome
我正在尝试更改它以使其将列表分为 3 个部分而不是 2 个部分。我的意思是它不再是二进制搜索,但对于每次迭代,算法会将列表分为 3 个部分。
我无法实现这一点。
任何帮助将不胜感激。