本文實(shí)例講述了python二分查找算法的遞歸實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
這里先提供一段二分查找的代碼:
def binarySearch(alist, item): first = 0 last =len(alist)-1 found = False while first<=lastand not found:midpoint = (first + last)//2if alist[midpoint] == item: found = Trueelse: if item < alist[midpoint]: last = midpoint-1 else: first = midpoint+1 return foundtestlist = [0, 1, 2, 8, 13, 17, 19, 32, 42,]print(binarySearch(testlist, 3))print(binarySearch(testlist, 13))
近來(lái)喜歡遞歸的簡(jiǎn)單明了,所以修改成遞歸的方法:
def binSearch(lst, item): mid = len(lst) //2 found = False if lst[mid] ==item: found = True return found if mid == 0:#mid等于0就是找到最后一個(gè)元素了。 found = False return found else: if item > lst[mid]: #找后半部分 #print(lst[mid:]) returnbinSearch(lst[mid:], item) else: returnbinSearch(lst[:mid], item) #找前半部分
測(cè)試通過(guò)。
更多關(guān)于Python相關(guān)內(nèi)容可查看本站專(zhuān)題:《Python正則表達(dá)式用法總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門(mén)與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注