编辑代码

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()