1. 程式人生 > 實用技巧 >二分查詢

二分查詢

  二分查詢也稱折半查詢(Binary Search),它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列

查詢過程

編輯 首先,假設表中元素是按升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功;否則利用中間位置記錄將表分成前、後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成功,或直到子表不存在為止,此時查詢不成功。

查詢次數

最少次數:1次,第一次就查詢到

最多次數:

程式碼實現

 1 def binary_search(list,item):
2 low = 0 3 high = len(list) - 1 4 while low <= high: 5 mid = (low + high) // 2 6 guess = list[mid] 7 if guess < item: 8 low = mid +1 9 elif guess == item: 10 return mid 11 else: 12 high = mid - 1 13 return
None
View Code
my_list=[1,3,5,7,9,11]
binary_search(my_list,5)

執行結果為2