704.二分查找
题目:[https://leetcode-cn.com/problems/binary-search/description/]
思路:实现二分查找,对于有序序列的一组查找方式。通过将目标值与中值进行比较,不断缩小范围,找到值到方法。
代码:
class Solution {
public:
int search(vector<int>& nums, int target) {
auto be=nums.begin(),ed=nums.end(),mid=nums.begin()+(ed-be)/2;//初始化二分查找到上下边界及中值
while (*mid!=target&&mid!=ed) {//目标找到了吗,
if (target<*mid) {//目标是在前面吗
ed=mid;//缩小上界
}
else be=mid+1;//目标在后面,缩小下界
mid=be+(ed-be)/2;//重新计算新的中值
}
if(*mid==target)
return mid-nums.begin();
return -1;
}
};
反思:1、二分查找一定要边界定准确

浙公网安备 33010602011771号