更新时间:2024-02-22 来源:黑马程序员 浏览量:
在Python中,实现二分查找通常有两种方法:
1.迭代法:
使用循环来实现二分查找算法。
2.递归法:
使用递归函数来实现二分查找算法。
下面是这两种方法的简单实现示例:
1.迭代法:
def binary_search_iterative(arr, target): left, right = 0, len(arr) - 1 while left <= right: mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid + 1 else: right = mid - 1 return -1 # 如果目标元素不在数组中,则返回 -1
2.递归法:
def binary_search_recursive(arr, target, left, right): if left > right: return -1 mid = (left + right) // 2 if arr[mid] == target: return mid elif arr[mid] < target: return binary_search_recursive(arr, target, mid + 1, right) else: return binary_search_recursive(arr, target, left, mid - 1) # 调用入口 def binary_search(arr, target): return binary_search_recursive(arr, target, 0, len(arr) - 1)
这两种方法都可以有效地在已排序的数组中查找目标元素的位置。迭代法使用循环来进行查找,而递归法则利用递归函数来实现。