這裡先提供一段二分查詢的**:
def binarysearch(alist, item):
first = 0
last =
len(alist)-1
found = fwww.cppcns.comalse
while first<=last
and not found:
midpoint = (first + last)//2
if alist[midpoint] == item:
found = true
else:
if item < alist[midpoint]:
last = midpoint-1
else:
first = midpoint+1
return found
testlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,]
print(binarysearch(testlist, 3))
print(binarysearch(testlist程式設計客棧, 13))
近來喜歡遞迴的簡單明瞭,所以修改成遞迴的方法:
def binsearch(lst, item):
mid = len(lst) //2
found = false
if lst[mid] ==
item:
found = true
return found
if mid == 0:
#mid等於0就是找到最後乙個元素了。
found = falselkiqdgndx
return found
else:
if item > lst[mid]: #找後半部分
#print(lst[mid:])
return
binsearch(lst[mid:], item)
else:
return程式設計客棧
binsearch(lst[:mid], item) #找前半部分
測試通過。
二分查詢遞迴演算法
使用此演算法的前提是,要查詢的範圍為有序範圍。一組數 num 9 left mid right 步驟 1.left為最左端元素的下標,right為最右端元素的下標,mid為查詢區間的中間元素,key為要查詢的元素。2.當left right的時候,比較num mid 和key 1 num mid k...
python遞迴查詢 python 遞迴,二分查詢
print list 胡辣湯 lst 河南話 四川話 東北 山東 上海 r reversed lst print list r huiwen 不是上海自來水來自海上 s huiwen 1 it reversed huiwen 返回的是迭代器 s for el in it s el print s l...
二分查詢演算法(遞迴 非遞迴)
二分查詢 binary search 先來個比較官方的解釋 二分搜尋 英語 binary search 也稱折半搜尋 英語 half interval search 對數搜尋 英語 logarithmic search 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如...