Python 二分法

二分法定義:

  • 二分法是一種快速查找的方法,時間復(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ù)字')

運行效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容