教你什麼是二分查詢(python)

2021-10-04 12:14:39 字數 1261 閱讀 9198

何為二分查詢?

二分查詢也稱折半查詢(binary search),它是一種效率較高的查詢方法。查詢速度 = log2n,(是以2為底,n的對數)

則是二等分,再二等分。

二分查詢必須滿足條件:

1.必須採用順序儲存結構。

2.必須按關鍵字大小有序排列。

二分法的查詢過程:

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

#這裡可以寫成mid = (int)((low+high)/2)

guess =

list

[mid]

if guess == item:

#如果等於這個數

return mid

if guess > item:

#如果大於中間數

high = mid -

1else

:#小於中間數

low = mid +

1return

none

my_list =[1

,3,5

,7,9

]#定義乙個列表,類似與其他語言的陣列

print

(binary_search(my_list,3)

)print

(binary_search(my_list,11)

)執行結果:

關注這個分類,今後帶來更多的python演算法實現。

Python二分查詢

二分查詢又稱折半查詢,首先,假設表中元素是按公升序排列,將表中間位置記錄的關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置記錄將表分成前 後兩個子表,如果中間位置記錄的關鍵字大於查詢關鍵字,則進一步查詢前一子表,否則進一步查詢後一子表。重複以上過程,直到找到滿足條件的記錄,使查詢成...

python 二分查詢

搜尋過程從陣列的中間元素開始,如果中間元素正好是要查詢的元素,則搜尋過程結束 如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中查詢,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為空,則代表找不到。這種搜尋演算法每一次比較都使搜尋範圍縮小一半 param array ...

二分查詢(Python)

演算法介紹 二分查詢要求陣列為有序排列,每次取中間的數與target進行比較,若相等,則查詢成功 若中間數較大,則在前一部分查詢,反之,在後一部分查詢。其時間複雜度為o logn 演算法實現def binarysearch nums,target if not nums return false s...