1. 程式人生 > >少說話多寫程式碼之Python學習038——建立函式04(函式的使用 )二分法查詢

少說話多寫程式碼之Python學習038——建立函式04(函式的使用 )二分法查詢

二分法查詢有一個重要前提,就是序列是有序的。在有序的序列中找到一箇中點,然後對比目標元素在中點的哪一側,然後依次這樣查詢,最終找到。邏輯非常簡單。我們主要看在
Python中是如何實現的,直接看程式碼如下,

def binarySearch(sequnce,number,lower=0,uper=None):
    if uper is None:uper=len(sequnce)-1
    if lower==uper:
        assert number==sequnce[uper]
        return uper
    else:
        middle=(lower+uper) // 2
        if number > sequnce[middle]:
            return  binarySearch(sequnce,number,middle+1,uper)
        else:
            return binarySearch(sequnce,number,lower,middle)

#呼叫
seq=[35,66,98,1,100,95]
seq.sort()
print(seq)
print(binarySearch(seq,95))

輸出

[1, 35, 66, 95, 98, 100]
3

工程檔案下載:https://download.csdn.net/download/yysyangyangyangshan/10771488