更新时间: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)
这两种方法都可以有效地在已排序的数组中查找目标元素的位置。迭代法使用循环来进行查找,而递归法则利用递归函数来实现。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19