二分查找非递归怎么写
时间: 2024-09-10 20:27:18 浏览: 42
C 二分查找 递归与非递归的实现代码
二分查找(Binary Search),也叫折半查找,是非递归版本的一种搜索算法。它的基本思想是在有序序列中查找特定元素,每次比较中间元素与目标值,然后确定剩余部分是继续在左半边还是右半边查找。以下是用Python编写的一个非递归二分查找的例子:
```python
def binary_search_non_recursive(array, target):
low = 0
high = len(array) - 1
while low <= high:
mid = (low + high) // 2
if array[mid] == target:
return mid
elif array[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1 # 如果没找到,返回-1
# 示例
numbers = [1, 4, 6, 8, 9]
search_value = 6
result = binary_search_non_recursive(numbers, search_value)
print(f"目标值 {search_value} 在数组中的索引是 {result}")
```
在这个函数中,我们初始化两个指针,`low`指向数组开始,`high`指向结束,然后在循环中不断调整这两个指针,直至找到目标值或者指针交叉。
阅读全文