def binary_search(arr, k): # 二分查找法
low = 0 # 列表第一个下标是0,左下标
high = len(arr) - 1 # 列表最后一个下标是长度-1,右下标
while low <= high: # 说明列表还有数组,继续循环判断
mid = (low + high) >> 1 # 确定中间下标mid,利用二进制位移做除法
if arr[mid] == k:
return mid # 找到元素,返回mid下标
elif arr[mid] < k: # 目标值比中间值大, 则往右下标变换
high = mid - 1 # 因为列表是倒序
else:
low = mid + 1
return -1 # 找不到情况
def main(): # 主函数
# 设定的列表
ordered_array = [85, 63, 52, 34, 25, 17, 6] # 降序列表
# 索要查找的元素
element_to_search = 85
result = binary_search(ordered_array, element_to_search)
if result != -1:
print(f"元素 {element_to_search} 存在列表中.")
else:
print(f"元素 {element_to_search} 不存在列表中.")
main()