二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int (vector<int> &nums, int target) {
int n = nums.size();
int first=0;
int last =n;
if(n=0){return -1;}
int mid =(first+last)/2;
while(first+1<last){
if(nums[mid]>target){
last = mid;
mid =(first+last)/2;
}
else if(nums[mid]<target){
first = mid;
mid =(first+last)/2;
}
else if(nums[mid]=target){
return mid;
break;
}
}
return -1;
}