二分查找针对的是已经排好序的序列,这点要着重注意
原理比较简单,每次切分后与分割点的值进行比较,更大则在大数的一侧进行再切分,更小则在小数的一侧进行再切分
l = [5, 13, 26, 25, 20, 15, 65, 51, 41]
# sort()是对本身进行排序,而sorted是产生新的排序的序列
li = sorted(l)
low = 0
high = len(li)-1
x = int(input("please input search num:"))
def search(i, j, key):
while i <= j:
m = (i+j)//2
if key < li[m]:
j = m
elif key > li[m]:
i = m+1
else:
return i
return -1
hwq = search(low, high, x)
print(hwq)