本关任务:采用二分查找算法实现查找有序数组里大于等于 x 的第一个数字
时间: 2023-12-14 20:32:32 浏览: 263
Python实现二维有序数组查找的方法
以下是使用二分查找算法实现查找有序数组里大于等于 x 的第一个数字的Python代码:
```python
def binary_search(arr, x):
left, right = 0, len(arr) - 1
while left <= right:
mid = (left + right) // 2
if arr[mid] >= x:
if mid == 0 or arr[mid - 1] < x:
return mid
else:
right = mid - 1
else:
left = mid + 1
return -1
```
其中,arr为有序数组,x为要查找的数字。函数返回大于等于x的第一个数字的下标,如果不存在则返回-1。
举个例子,假设有序数组为[1, 3, 5, 7, 9],要查找大于等于6的第一个数字,那么调用函数binary_search(arr, 6)后会返回2,即数字5的下标。
阅读全文