在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ Python遞歸
Python樹遍歷算法
Python雙端隊(duì)列
Python隊(duì)列
Python回溯
Python棧
Python數(shù)據(jù)結(jié)構(gòu)開發(fā)環(huán)境
Python數(shù)據(jù)結(jié)構(gòu)簡介
Python算法分析
Python圖遍歷算法
Python搜索算法
Python圖
Python鏈表
Python集合
Python元組
Python字典
Python矩陣
Python高級鏈表(雙向鏈表)
Python搜索樹
Python二維數(shù)組
Python堆
Python節(jié)點(diǎn)
Python排序算法
Python數(shù)據(jù)結(jié)構(gòu)
Python遞歸
Python列表
Python數(shù)組
Python算法設(shè)計
Python哈希表

Python遞歸

遞歸允許函數(shù)自調(diào)用。 修復(fù)代碼的步驟會一次又一次地執(zhí)行新值。 還必須設(shè)置判斷遞歸調(diào)用何時結(jié)束的標(biāo)準(zhǔn)。 在下面的例子中,演示如何使用二進(jìn)制搜索的遞歸方法。采用一個排序列表,并將其索引范圍作為遞歸函數(shù)的輸入。

使用遞歸進(jìn)行二進(jìn)制搜索

使用python實(shí)現(xiàn)二進(jìn)制搜索算法,如下所示。 我們使用有序的項(xiàng)目列表,并設(shè)計一個遞歸函數(shù),將起始索引和結(jié)束索引作為輸入列表。 然后二進(jìn)制搜索函數(shù)自行調(diào)用,直到搜索到項(xiàng)目或在列表中結(jié)束。

參考以下代碼實(shí)現(xiàn) -

def bsearch(list, idx0, idxn, val):

    if (idxn < idx0):
        return None
    else:
        midval = idx0 + ((idxn - idx0) // 2)
# Compare the search item with middle most value

        if list[midval] > val:
            return bsearch(list, idx0, midval-1,val)
        elif list[midval] < val:
            return bsearch(list, midval+1, idxn, val)
        else:
            return midval

list = [8,11,24,56,88,131]
print(bsearch(list, 0, 5, 24))
print(bsearch(list, 0, 5, 51))

執(zhí)行上面示例,得到以下結(jié)果 -

2
None