1. 程式人生 > >演算法圖解中的二分查詢

演算法圖解中的二分查詢

對於一種有序的元素列表,很多人的第一反應會是將元素一個一個的進行查詢形成簡單查詢

二分查詢是針對有序元素列表進行的查詢性演算法,舉例說明,如果1-100數字,二分查詢就是對半進行,判斷數字在1-50還是51-100,如果在1-50範圍內,在1-25和26-50進行查詢判斷。

使用python程式碼例項

def binary_search(list,item):
    #這是根據索引開始
    low=0
    #索引長度減一得到最高的數字值
    high=len(list)-1
    #根據二分邏輯進行迴圈判斷
    while low<=high:
        mid=(low+high)/2
        guess=list[mid]
        if guess==item:
            return mid
        if guess>item:
            high=mid-1
        else:
            low=mid+1
     return None
mylist=[1,3,5,7,9,11,13]
print(binary_search(mylist,3))
print(binary_search(mylist,-1))