python二分查詢演算法的遞迴實現方法

2022-09-29 17:39:13 字數 1040 閱讀 9690

這裡先提供一段二分查詢的**:

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 是一種在有序陣列中查詢某一特定元素的搜尋演算法。搜尋過程從陣列的中間元素開始,如...