c++二分查找模板
在C++中,二分查找(Binary Search) 是一种针对有序数组/容器的高效搜索算法,时间复杂度为 O(log n)。其核心思想是通过不断缩小搜索范围,将目标值与中间元素比较,从而快速定位元素位置。以下是详细实现和注意事项:
1. 二分查找的前提条件
- 数据必须是有序的(升序或降序)。
- 适用于支持随机访问的容器(如数组、
std::vector
)。
2. 算法步骤
- 初始化左右指针
left = 0
,right = n-1
(n为数组长度)。 - 循环直到
left > right
:- 计算中间索引
mid = left + (right - left) / 2
(避免整数溢出)。 - 若
arr[mid] == target
,返回mid
- 计算中间索引