Python遞回


遞回允許函式自呼叫。 修復程式碼的步驟會一次又一次地執行新值。 還必須設定判斷遞回呼叫何時結束的標準。 在下面的例子中,演示如何使用二進位制搜尋的遞迴方法。採用一個排序列表,並將其索引範圍作為遞回函式的輸入。

使用遞迴進行二進位制搜尋

使用python實現二進位制搜尋演算法,如下所示。 我們使用有序的專案列表,並設計一個遞回函式,將起始索引和結束索引作為輸入列表。 然後二進位制搜尋函式自行呼叫,直到搜尋到專案或在列表中結束。

參考以下程式碼實現 -

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))

執行上面範例,得到以下結果 -

2
None