本题目要求运用二分查找法在数组R(已升序排序)中查找k值,输出其位置pos(即数组下标,从0开始),如果找不到,则输出-1。
时间: 2024-01-03 19:52:27 浏览: 208
对数组进行二分查找
好的,我明白了。针对您的问题,我可以给出以下代码实现:
```python
def binary_search(R, k):
left = 0
right = len(R) - 1
while left <= right:
mid = (left + right) // 2
if R[mid] == k:
return mid
elif R[mid] < k:
left = mid + 1
else:
right = mid - 1
return -1
```
这个函数接受两个参数,一个已经按照升序排好序的数组R,和需要查找的元素k。它会记录数组的左右两个端点,并通过二分查找的方式逐步缩小搜索范围,最终返回查找到的元素在数组中的下标pos,或者-1表示没有找到。
阅读全文