【发布时间】:2019-08-07 08:35:03
【问题描述】:
我一直在尝试实现此代码,其工作是使用二进制搜索查找特定元素。现在,如果元素存在于列表中,则代码可以正常工作,但如果搜索元素不存在,则无法显示预期的块目前。我假设该列表按升序排序。对此的帮助将不胜感激
我尝试在 while: 中添加 else 部分,但没有帮助。它无法显示未找到元素的错误
def binarysearch(l,item):
low=0
u=len(l)-1
while low<=u:
mid=int((low+u)/2)
if item==l[mid]:
return mid
elif item<l[mid]:
high=mid-1
else:
low=mid+1
l=eval(input("Enter the list of elements"))
item=int(input("Enter search item:"))
index=binarysearch(l,item)
if index>=0:
print(item,"found at index",index)
else:
print("Element not found") #i am unable to reach this part
如果输入是: 输入元素列表[8,12,19,23] 输入搜索项:10
我希望结果是“找不到元素”。但是在这种情况下程序什么也不做
【问题讨论】:
标签: python-3.x recursion binary-search