当前位置:首页 > 二进制 > 正文

二进制算法的公式


公式:
low = 1 // 二分搜索的左边界
high = n // 二分搜索的右边界
while low <= high:
mid = (low + high) // 2 // 计算中间索引
if arr[mid] == target: // 如果中间元素与目标值相等
return mid // 返回中间索引
elif arr[mid] < target: // 如果中间元素小于目标值
low = mid + 1 // 更新左边界索引
else: // 如果中间元素大于目标值
high = mid - 1 // 更新右边界索引
return -1 // 如果未找到目标值,返回-1
其中:
arr 是一个已排序的数组
n 是数组的大小
target 是要查找的元素
mid 是中间索引
low 是左边界索引
high 是右边界索引
工作原理:
二进制搜索算法使用分治法来查找一个元素。 它通过在数组中选择一个中间元素并将其与要查找的元素进行比较,从而将搜索空间减半。
如果中间元素等于目标元素,则算法返回中间索引。
如果中间元素小于目标元素,则算法将左边界索引更新为中间索引 + 1,从而将搜索空间限制在右半部分。
如果中间元素大于目标元素,则算法将右边界索引更新为中间索引 - 1,从而将搜索空间限制在左半部分。
算法重复此过程,直到找到目标元素或搜索空间为空。
时间复杂度:
二进制搜索算法的时间复杂度为 O(log n),其中 n 是数组的大小。