用二分查找法找数组中的某个数字,找到就打印下标,找不到就输出找不到
时间: 2024-10-21 21:14:11 浏览: 30
二分查找算法是一种在有序数组中快速定位特定元素的搜索算法。它的基本思想是每次比较中间元素的值,然后根据需要查找的值与中间元素的关系,决定是在数组的左半部分还是右半部分继续查找。以下是步骤简述:
1. 初始化两个指针,`left`表示数组的第一个索引,`right`表示最后一个索引。
2. 当`left`小于等于`right`时,执行循环:
- 计算中间索引 `mid`,通常是 `(left + right) // 2`。
- 比较目标值 `target` 和数组中间元素的值:
- 如果相等,找到了目标值,打印 `mid` 并结束查找。
- 如果目标值小于中间元素,说明目标在左半边,将 `right` 设置为 `mid - 1`。
- 如果目标值大于中间元素,说明目标在右半边,将 `left` 设置为 `mid + 1`。
3. 如果循环结束后仍没找到目标值,则返回“找不到”。
这是一个伪代码示例:
```python
def binary_search(arr, target):
left = 0
right = len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
print(f"找到下标 {mid}")
return
elif arr[mid] < target:
left = mid + 1
else:
right = mid - 1
print("找不到")
```
阅读全文