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