在Python中,遞歸是一種常用的編程技巧,它允許一個函數調用自身來解決問題。遞歸通常用于解決分治問題,例如計算階乘、斐波那契數列等。以下是一個簡單的遞歸實現查找函數的示例:
def binary_search(arr, target, low, high):
if low > high:
return -1 # 目標值不在數組中
mid = (low + high) // 2
if arr[mid] == target:
return mid # 找到目標值,返回其索引
elif arr[mid]< target:
return binary_search(arr, target, mid + 1, high) # 在右側子數組中查找
else:
return binary_search(arr, target, low, mid - 1) # 在左側子數組中查找
# 示例
arr = [1, 3, 5, 7, 9]
target = 5
result = binary_search(arr, target, 0, len(arr) - 1)
print(result) # 輸出:2
在這個示例中,我們使用了二分查找算法(binary search)來在有序數組arr
中查找目標值target
。binary_search
函數接受四個參數:數組arr
、目標值target
、搜索范圍的最低索引low
和最高索引high
。通過遞歸地將搜索范圍縮小一半,直到找到目標值或搜索范圍為空。