//递归版二分查找
int binarySearch(vector<int>& nums,int left,int right,int target){
if(nums.empty()) return -1;
int mid=0;
while(left<right){
mid=(left+right)/2;
if(nums[mid]==target)
return mid;
else if(nums[mid]>target)
return binarySearch(nums,left,mid,target);
else
return binarySearch(nums,mid+1,right,target);
}
return -1;
}
//非递归版二分查找
int binarySearch(vector<int>& nums,int left,int right,int target){
if(nums.empty()) return -1;
int mid=0;
while(left<right){
mid=(left+right)/2;
if(nums[mid]==target)
return mid;
else if(nums[mid]>target)
right=mid;
else
left=mid+1;
}
return -1;
}
2
01-29
2217

07-10
3万+

04-18
5万+

02-16
2897

“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交