二分法两个返回值会冲突吗
时间: 2023-11-29 20:06:34 浏览: 63
二分法通常只会返回一个值,表示要查找的元素在数组中的位置。如果要返回两个值,可以将它们打包成一个元组(tuple)返回,这样就不会冲突了。例如,在Python中,可以这样写一个返回值为元组的二分查找函数:
```python
def binary_search(array, target):
left, right = 0, len(array) - 1
while left <= right:
mid = (left + right) // 2
if array[mid] == target:
# 找到目标元素,返回它的位置和值
return mid, array[mid]
elif array[mid] < target:
left = mid + 1
else:
right = mid - 1
# 没找到目标元素,返回-1表示失败
return -1, None
```
这个函数的返回值是一个元组,第一个元素是目标元素在数组中的位置,第二个元素是目标元素的值。如果找不到目标元素,返回的位置为-1,值为None。这样,我们就可以同时获取目标元素在数组中的位置和值了。
阅读全文