1.模板
int search(vector<int>& nums, int target) {
int l=0;
int r=nums.size();
int mid;
while(l<r){
mid=(l+r)/2;
if(nums[mid]<target){
l=mid+1;
}else if(nums[mid]>target){
r=mid;
}else{
return mid;
}
}
return -1;
}
2.分析
在数组范围内不断缩小范围为一半,最后没找到l=r
3.复杂度分析
时间复杂度:O(log n),其中 n 是数组的长度。
空间复杂度:O(1)。