用python實現二分法

2021-10-10 20:21:07 字數 867 閱讀 1903

二分法查詢,也稱為折半法,是一種在有序陣列中查詢特定元素的搜尋演算法。

二分法查詢的思路如下:

(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

)]#本身就是有序的陣列

print

(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實現二分法查詢

搜尋是在乙個專案集合中找到乙個特定專案的演算法過程。搜尋通常的答案是真的或假的,因為該專案是否存在。搜尋的幾種常見方法 順序查詢 二分法查詢 二叉樹查詢 雜湊查詢 二分查詢又稱折半查詢,優點是比較次數少,查詢速度快,平均效能好 其缺點是要求待查表為有序表,且插入刪除困難。因此,折半查詢方法適用於不經...