非递归的二分查找(从递增有序数组中查找指定整数 代码
时间: 2024-09-06 11:07:33 浏览: 98
二分实现两个递增序列中位数查找
非递归的二分查找是一种高效的查找算法,它适用于在一个有序数组中查找特定的元素。该算法的基本思想是:每次查找都将搜索范围缩小一半,直到找到目标元素或搜索范围为空。
以下是使用Python实现非递归二分查找的示例代码:
```python
def binary_search_non_recursive(arr, target):
left, right = 0, len(arr) - 1
while left <= right:
mid = left + (right - left) // 2 # 防止溢出,等同于 (left + right) // 2
if arr[mid] == target:
return mid # 找到目标,返回索引
elif arr[mid] < target:
left = mid + 1 # 目标在右侧
else:
right = mid - 1 # 目标在左侧
return -1 # 未找到目标,返回-1
```
使用这个函数时,传入一个递增有序的数组`arr`和要查找的目标值`target`,函数会返回目标值在数组中的索引。如果没有找到目标值,则返回`-1`。
阅读全文