二分法查找

int search(vector<int>& nums, int target)
{
    int left = 0;
    int right = nums.size();
    if (right == 0)
    {
        return -1;
    }
    bool flag = false;
    while (left<right)
    {
        int mid = left + (right - left) / 2;
        if (nums[mid] == target)
        {
            flag = true;
            right = mid;
        }
        else if (nums[mid]<target)
        {
            left = mid + 1;
        }
        else if (nums[mid]>target)
        {
            right = mid;
        }
    }

    if (flag == true)
        return left;
    else
        return -1;
}

 

posted @ 2021-03-18 09:59  唯一诺  阅读(49)  评论(0编辑  收藏  举报