python二分法的思路
时间: 2024-01-14 15:21:48 浏览: 99
二分法是一种常用的搜索算法,它通过将已排序的列表分成两部分,并与目标值进行比较来快速定位目标值的位置。其思路如下:
1. 首先,确定列表的中间元素。
2. 将中间元素与目标值进行比较。
3. 如果中间元素等于目标值,则搜索结束,返回中间元素的索引。
4. 如果中间元素大于目标值,则目标值可能在列表的左半部分,将搜索范围缩小为左半部分,并重复步骤1。
5. 如果中间元素小于目标值,则目标值可能在列表的右半部分,将搜索范围缩小为右半部分,并重复步骤1。
6. 重复步骤1-5,直到找到目标值或搜索范围为空。
以下是一个使用二分法查找目标值的示例代码:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1
# 示例使用
arr = [1, 3, 5, 7, 9]
target = 5
result = binary_search(arr, target)
print("目标值的索引为:", result) # 输出:目标值的索引为: 2
```
阅读全文