704. 二分查找 - 力扣(LeetCode)
https://leetcode.cn/problems/binary-search/description/二分查找的逻辑
在数组有序的情况下,将中间值与目标值进行对比
中间值>目标值,就到中间的左侧区域找
中间值<目标值,就到中间的右侧区域找
中间值=目标值,就返回,
如果范围缩小到没有区域(left>right),就结束返回失败

cpp
class Solution {
public:
int search(vector<int>& nums, int target) {
int n=nums.size();
int left=0,right=n-1;
while(left<=right)
{
int mid=(left+right)/2;
if(nums[mid]<target)
{
left=mid+1;
}
else if(nums[mid]>target)
{
right=mid-1;
}
else
{
return mid;
}
}
return -1;
}
};