def bs(a, num):
low = 0
high = len(a) - 1
mid = int(high / 2)
while low<high: #當low == high 的時候查不到值那就不會存在了
if num < a[mid]:
high = mid
elif num > a[mid]:
low = mid+1 #這裏不+1 查找的數在最後一位的時候會形成死循環 例如 7 8 int((7+8)/2)=7 則永遠7 8 不能查找到數組的第8位
elif num == a[mid]:
return mid
else:
return -1
mid = int((high + low) / 2)
return -1
if __name__ == '__main__':
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
index = bs(a, -1)
print(index)
算法 - pyhton - 二分查找
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.