- 待查找序列必须是有序的 (无序的需要进行排序处理)
模板一
int binary_search(vector<int>& nums, int target)
{
int low = 0, high = nums.size() - 1;
while (low <= high)
{
//防止low + high结果溢出,>>1右移一位相当于除以2
int mid = low + ((high - low) >> 1);
if (nums[mid] == target)
return mid;
else if (nums[mid] < target)
{
low = mid + 1;
}
else if (nums[mid] > target)
{
high = mid - 1;
}
}
return -1;
}