二分搜索问题没有给出期望的结果.不确定是什么导致了这个问题?



下面是我的代码:

尝试使用旧的二进制搜索算法从列表中搜索元素,

def binary_search(l, low, high, val):
while low <= high:
mid = (high + low) // 2
#print(mid)
if l[mid] > val:
high = mid - 1
elif l[mid] < val:
low = mid + 1
else:
return mid
return -1


arr = [1,24,5,3]
result = binary_search(arr, 0,(len(arr)-1), 5)
if result == -1:
print(" Not present")
else:
print("given number present at index", result)

输出为:"Not present">

我无法得到的问题,究竟是缺少得到正确的索引,为什么它不返回索引= 2为给定的arr。请帮助。

在二进制搜索中数组应该排序。

Try with arr = [1,3,5,24]

最新更新