使用二分查找算法查找出数组中的最大值,数组你自己定义,使用python实现,要有注释
时间: 2024-03-10 11:47:54 浏览: 62
计算机视觉KMeans聚类算法的python实现
好的,下面是使用二分查找算法查找出数组中的最大值的 Python 代码,已经加上了注释:
```python
def binarySearchMax(arr):
"""
使用二分查找算法查找出数组中的最大值
:param arr: 待查找的数组
:return: 数组中的最大值
"""
# 数组长度
n = len(arr)
# 如果数组只有一个元素,直接返回该元素
if n == 1:
return arr[0]
# 如果数组有两个元素,返回较大的那个
if n == 2:
return arr[0] if arr[0] > arr[1] else arr[1]
# 如果数组有多个元素,进行二分查找
# 定义左右指针
left = 0
right = n - 1
while left <= right:
mid = (left + right) // 2
# 如果当前元素是最大值,则返回该元素
if mid == 0 and arr[mid] > arr[mid + 1]:
return arr[mid]
if mid == n - 1 and arr[mid] > arr[mid - 1]:
return arr[mid]
if arr[mid] > arr[mid - 1] and arr[mid] > arr[mid + 1]:
return arr[mid]
# 如果当前元素不是最大值,则根据二分查找的规则更新左右指针
if arr[mid] < arr[mid - 1]:
right = mid - 1
else:
left = mid + 1
```
这个函数接受一个数组作为参数,返回数组中的最大值。如果数组只有一个元素,直接返回该元素;如果数组有两个元素,返回较大的那个;如果数组有多个元素,进行二分查找,找到数组中的最大值。
阅读全文