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