兩種方法實現Python二分查詢演算法

2022-05-17 19:27:58 字數 807 閱讀 9199

一.

arr=[1,3,6,9,10,20,30]

def findnumber(l,h,number):

mid=(l+h)//2

if arr[mid]==number:

print("找到了"+str(mid))

elif arr[mid]number:

h = mid

return findnumber(0,mid-1,number)

else:

print("沒有找到")

findnumber(0,len(arr)-1,10)

二.

def binary_search(data_source,find_n):

#取中位數

mid=int(len(data_source)/2)

if len(data_source)>=1:

if data_source[mid]>find_n: #中位數大於要查詢的數,則要查詢的數在左半部分,繼續呼叫二分演算法進行查詢

binary_search(data_source[:mid],find_n)

elif data_source[mid]binary_search(data_source[mid:],find_n)

else: #中位數等於要查詢的數

print("找到了:",data_source[mid])

else:

print("沒有找到")

data=list(range(1,100000))

binary_search(data,88888)

二分查詢的兩種實現方法

二分查詢又名折半查詢法,實現思路可以到網上找到,在此就不在說了。二分查詢有兩種實現方法,一種方法是 使用迴圈遍歷,結束條件是 low high 另一種方法是 使用遞迴,結束條件也是 low high。如下 public class binarysearchtest sortutil.showarr ...

PHP中實現二分法查詢的兩種方法

二分法查詢需要陣列是乙個遞增的陣列。想要寫出二分法查詢的 首先要懂得二分法實現查詢的原理 要知道中間位置就需要知道起始位置和結束位置,然後取出中間位置的值來和我們的值做對比。如果中間值大於我們的給定值,說明我們的值在中間位置之前,此時需要再次二分,因為在中間之前,所以我們需要變的值是結束位置的值,此...

PHP中實現二分法查詢的兩種方法

二分法查詢需要陣列是乙個遞增的陣列。想要寫出二分法查詢的 首先要懂得二分法實現查詢的原理 要知道中間位置就需要知道起始位置和結束位置,然後取出中間位置的值來和我們的值做對比。如果中間值大於我們的給定值,說明我們的值在中間位置之前,此時需要再次二分,因為在中間之前,所以我們需要變的值是結束位置的值,此...