递归二进制搜索(Recursive Binary Search)是一种高效的查找算法,用于在已排序的数组中查找特定元素。它通过反复将搜索范围减半来快速缩小目标元素的可能位置。
递归二进制搜索主要分为两种类型:
递归二进制搜索广泛应用于各种需要高效查找的场景,例如:
def binary_search_recursive(arr, target, low, high):
if high >= low:
mid = (high + low) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
return binary_search_recursive(arr, target, low, mid - 1)
else:
return binary_search_recursive(arr, target, mid + 1, high)
else:
return -1
# 示例用法
arr = [2, 3, 4, 10, 40]
target = 10
result = binary_search_recursive(arr, target, 0, len(arr) - 1)
if result != -1:
print("元素在数组中的索引为", result)
else:
print("元素不在数组中")
def binary_search_iterative(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (high + low) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
high = mid - 1
else:
low = mid + 1
return -1
# 示例用法
arr = [2, 3, 4, 10, 40]
target = 10
result = binary_search_iterative(arr, target)
if result != -1:
print("元素在数组中的索引为", result)
else:
print("元素不在数组中")
通过以上内容,你应该对递归二进制搜索有了全面的了解,并能够解决常见的相关问题。
领取专属 10元无门槛券
手把手带您无忧上云