二分法定義:
- 二分法是一種快速查找的方法,時間復(fù)雜度低,邏輯簡單易懂,總的來說就是不斷的除以2除以2...
例如需要查找有序數(shù)組array里面的某個關(guān)鍵字key的位置,那么首先確認(rèn)array的中位數(shù)或者中點center,下面分為三種情況:
- 假如array[center]>key,說明key在array中心左邊范圍;
- 假如array[center]<key,說明key在array中心右邊范圍;
- 假如array[center]=key,說明key在array中心。
代碼實現(xiàn):
array = [1,4,2,45,65,76,2,0]
key = 65
min = 0
max = len(array)-1#取array的索引
center = int((min+max)/2) #加int,防止出現(xiàn)浮點數(shù)
if key in array:
while True: #建立死循環(huán),使其找到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('沒有該數(shù)字')

運行效果