LeetCode704 二分查找

给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

基础的二分查找,唯一需要注意的就是移位运算的优先级很低,需要加括号。

 1 class Solution {
 2 public:
 3     int search(vector<int>& nums, int target) {
 4         return recursive(nums,0,nums.size()-1,target);
 5     }
 6 
 7     int recursive(vector<int>& nums, int start, int end, int target){
 8         if(start>end)
 9             return -1;
10         int mid=start+((end-start)>>1);
11         if(nums[mid]==target)
12             return mid;
13         else if(nums[mid]>target)
14             return recursive(nums,start,mid-1,target);
15         else   
16             return recursive(nums,mid+1,end,target);
17     }
18 
19 };
原文地址:https://www.cnblogs.com/rookiez/p/13374210.html