编写函数,参考例题5-14,采用二分法从以下列表中查找元素5 [1,23125,5,59,58,54,52,28,1,56,8,47,4,25,-2,25,27,45,1,-5]
时间: 2023-09-29 13:08:24 浏览: 60
4-5题_numericalanalysis_body5zh_
以下是采用二分法查找元素5的函数实现:
```python
def binary_search(arr, target):
"""
二分法查找函数
:param arr: 待查找的数组
:param target: 目标元素
:return: 目标元素在数组中的下标,若不存在则返回-1
"""
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] == target:
return mid
elif arr[mid] > target:
right = mid - 1
else:
left = mid + 1
return -1
arr = [1, 23, 125, 5, 59, 58, 54, 52, 28, 1, 56, 8, 47, 4, 25, -2, 25, 27, 45, 1, -5]
arr.sort() # 二分法查找需要先对数组排序
index = binary_search(arr, 5)
print(index)
```
输出结果为:
```
2
```
说明目标元素5在数组中的下标为2。
阅读全文