二分法定义:
- 二分法是一种快速查找的方法,时间复杂度低,逻辑简单易懂,总的来说就是不断的除以2除以2...
例如需要查找有序数组array
里面的某个关键字key
的位置,那么首先确认array
的中位数或者中点center
,下面分为三种情况:
- 假如array[center]>key,说明key在array中心左边范围;
- 假如array[center]<key,说明key在array中心右边范围;
- 假如array[center]=key,说明key在array中心。
代码实现:
array = [1,4,2,45,65,76,2,0]
key = 65
min = 0
max = len(array)-1#取array的索引
center = int((min+max)/2) #加int,防止出现浮点数
if key in array:
while True: #建立死循环,使其找到key为止
if array[center] > key:
center = center -1
elif array[center] > key:
center = center +1
elif array[center] == key:
print(str(key)+'在array里面第'+str(center)+'个位置')
break #找到之后终止
else:
print('没有该数字')