实现一个二分查找法(网上查阅二分查找法资料)的函数,函数返回值有两个,一个是查找目标,另一个是查找次数。并运行例子python
时间: 2023-06-14 20:07:02 浏览: 67
好的,以下是实现二分查找法的代码:
```python
def binary_search(arr, target):
low = 0
high = len(arr) - 1
count = 0
while low <= high:
mid = (low + high) // 2
count += 1
if arr[mid] == target:
return mid, count
elif arr[mid] < target:
low = mid + 1
else:
high = mid - 1
return -1, count
```
该函数接受一个已经排序好的数组和一个目标值作为参数,返回一个元组,包含目标值在数组中的位置和查找次数。
接下来,我们可以运行一个简单的例子来测试该函数:
```python
arr = [1, 3, 5, 7, 9]
target = 7
result, count = binary_search(arr, target)
if result != -1:
print(f"目标值 {target} 在数组的第 {result+1} 个位置上,查找次数为 {count} 次")
else:
print(f"目标值 {target} 不在数组中,查找次数为 {count} 次")
```
输出结果为:
```
目标值 7 在数组的第 4 个位置上,查找次数为 2 次
```
说明该函数能够正常地进行二分查找,并返回目标值的位置和查找次数。
阅读全文