完全没思路!Python 输入数x,二分查找法查找出X及其下标

输入 n 值(1<= n <=1000)、 n 个非降序排列的整数以及要查找的数 x ,使用二分查找算法查找 x ,输出 x 所在的下标(0~ n -1)及比较次数。若 x 不存在,输出﹣1和比较次
数。

img

n = int(input("输入列表长度:"))
array = eval(input("输入列表:"))
findNum   = int(input("输入搜索数:"))
#首位值
low = 0
#末位值
height = len(array)-1
 
#循环查找
while True:
    #获取中位数
    mid = int((low+height)/2)
    #打印中位数,查看循环次数
    print(array[mid])
    #如果中位数小于查找值,则锁定后半段
    if array[mid] < findNum:
        #重置低位数
        low = mid + 1
    #如果中位数大于查找值,则锁定前半段
    elif array[mid] > findNum:
        #重置高位值
        height = mid - 1
    #找到数字则打印该值下标,终止循环
    elif array[mid]==findNum:
        print('find it:',array[mid],' index:',mid)
        break
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632