二分查找小于等于的函数
时间: 2023-10-14 16:01:22 浏览: 51
二分查找是一种高效的搜索算法,可以用来在有序数组中查找某个值或者满足某个条件的元素。如果你想要找到数组中小于等于某个给定值的元素,可以实现一个二分查找函数来实现。
下面是一个示例的二分查找小于等于的函数的实现:
```python
def binary_search_less_equal(arr, target):
left = 0
right = len(arr) - 1
result = -1
while left <= right:
mid = (left + right) // 2
if arr[mid] <= target:
result = mid
left = mid + 1
else:
right = mid - 1
return result
```
这个函数接受一个有序数组 `arr` 和目标值 `target` 作为输入参数。它使用两个指针 `left` 和 `right` 来表示搜索的范围。开始时,将 `left` 设置为数组的第一个索引,将 `right` 设置为数组的最后一个索引。同时,初始化 `result` 为 -1,表示未找到小于等于目标值的元素。
然后,在循环中,计算中间索引 `mid`,并判断 `arr[mid]` 是否小于等于目标值。如果是,则更新 `result` 的值为 `mid`,并将 `left` 设置为 `mid + 1` 继续向右搜索;如果不是,则将 `right` 设置为 `mid - 1` 继续向左搜索。
最后,循环结束后返回 `result` 的值,即为小于等于目标值的最右侧元素的索引。
请注意,这个函数要求输入的数组必须是有序的,否则结果将不可预测。