兩種方法實現Python二分查找算法
阿新 • • 發佈:2018-01-04
進行 n) == bsp highlight log range pre arr
一.
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: l = mid return findnumber(mid+1,h,number) 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]<find_n: #中位數小於要查找的數,則要查找的數在右半部分 binary_search(data_source[mid:],find_n) else: #中位數等於要查找的數 print("找到了:",data_source[mid]) else: print("沒有找到") data=list(range(1,100000)) binary_search(data,88888)
兩種方法實現Python二分查找算法