少說話多寫程式碼之Python學習038——建立函式04(函式的使用 )二分法查詢
阿新 • • 發佈:2018-11-08
二分法查詢有一個重要前提,就是序列是有序的。在有序的序列中找到一箇中點,然後對比目標元素在中點的哪一側,然後依次這樣查詢,最終找到。邏輯非常簡單。我們主要看在
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