题目解析
二分查找在数组有序可以使用,也可以在数组无序的时候使用(只要数组中的一些规律适用于二分即可)
 704. 二分查找
 
算法讲解

 当left >= right的时候,我们循环结束,但是当left和right缩成一个点的时候,我们最后这个点的大小是没有与target进行比较的,所以我们需要进行最后一次计较
class Solution {
public:
    int search(vector<int>& nums, int target) {
        int left = 0, right = nums.size()-1;
        int mid = (right - left) / 2 + 1;
        while(left < right)
        {
            mid = left + (right - left) / 2;
            if(target > nums[mid])
            {
                left = mid + 1;
            }
            else if(target < nums[mid])
            {
                right = mid - 1;
            }
            else return mid;
        }
        if(nums[left] == target)return left;
        return -1;
    }
};




![[中级]软考_软件设计_计算机组成与体系结构_08_输入输出技术](https://img-blog.csdnimg.cn/direct/e16138b0ea6b414a8a8643ca428849d5.png)














