下面是我的代码:
尝试使用旧的二进制搜索算法从列表中搜索元素,
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]