二分法查詢,也稱為折半法,是一種在有序陣列中查詢特定元素的搜尋演算法。
二分法查詢的思路如下:
(1)首先,從陣列的中間元素開始搜尋,如果該元素正好是目標元素,則搜尋過程結束,否則執行下一步。
當目標數大於中間數時,設定low下標等於中間數下標+1,h不變,在此區間進行查詢;
當目標數小於中間數時,low不變,h設定為k-1,在此區間進行查詢。
(3)如果某一步陣列為空,則表示找不到目標元素。
二分法查詢的時間複雜度o(logn)。
測試結果:def
search
(array,n)
: array.sort(
)#對陣列進行排序
low =
0#開始下標
h =len(array)-1
#結束下標
while low <= h:
k =(low + h)//2
if array[k]
< n:
low = k +
1elif array[k]
> n:
h = k -
1else
:return k#找到返回對應下標
return-1
#找不到返回-1
array =
[i for i in
range(1
,1001,5
)]#本身就是有序的陣列
(search(array,
816)
)
python二分法查詢 Python 二分法查詢
二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...
二分法python實現
聚會遊戲,乙個人想乙個數,其他人來猜,然後告訴你猜大了還是小了,直到猜到這個數。二分法和猜數遊戲類似,只不過猜的時候一定猜最中間的那個數,折半查詢所需內容,就陣列來說,陣列越長,梯度下降越快,二分查詢優勢越明顯。python 如下 1 defbinary search list,item 2 low...
python實現二分法查詢
搜尋是在乙個專案集合中找到乙個特定專案的演算法過程。搜尋通常的答案是真的或假的,因為該專案是否存在。搜尋的幾種常見方法 順序查詢 二分法查詢 二叉樹查詢 雜湊查詢 二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經...