二分法查詢

2021-10-20 12:34:52 字數 1245 閱讀 6257

def

dg_find

(a, item)

:# 終止條件,當列表的長度為0,表示沒有找到元素不再遞迴

iflen

(a)==0:

return

false

# 找中間位置

mid =

len(a)//2

# 判斷中間位置是否是要查詢的值,如果是,返回true

if a[mid]

== item:

return

true

# 中間值大於item, 在中間值左邊的資料繼續按照二分法查詢

elif a[mid]

> item:

return dg_find(a[

:mid]

, item)

# 中間值小於item, 在中間值右邊的資料繼續按照二分法查詢

else

:return dg_find(a[mid+1:

], item)

def

find

(a, item)

:# 建立兩個指標指向列表的開頭和結尾

start =

0 end =

len(a)-1

# 通過不斷迴圈,去查詢列表中所有資料是否找到

# 當start指標大於end指標,表示沒有找到,就跳出迴圈

while start <= end:

# 通過指標查詢中間位置

mid =

(start + end)//2

# 判斷當前位置的元素是否是要查詢的資料

if a[mid]

== item:

return

true

# 中間值大於item,把end指標指向mid的前一位

elif a[mid]

> item:

end = mid-

1# 中間值小於item,把start指標指向mid的後一位

else

: start = mid+

1return

false

if __name__ ==

'__main__'

: a =[1

,2,3

,4,5

,6,7

,8]print

(find(a,8)

)

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

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 ...

二分法查詢

前幾天csdn上說只有10 程式設計師能寫出正確的二分法查詢 so.我在看過二分法查詢方法後寫了乙個 一次測試成功.範圍 需要次數 10 4 100 7 1000 10 10000 14 100000 17 1000000 20 除了對特別小的陣列外,二分法查詢表現是非常優秀的.每次對範圍加倍可以建...