第一题
所用算法:二分搜索
算法说明:二分搜索从有序序列中寻找某个给定的值
算法思想:二分法首先从中心位置开始搜索,如果中心位置的元素正好是要找的元素,搜索完成;如果不是,假如中心位置的元素小于要找的元素,则从序列的后半部分找,如果中心位置的元素大于要找的元素则从中心位置的前半部分找。在缩小的范围中再重新确定一个中心位置重复之前的过程。
1 class Solution { 2 public: 3 bool Find(int target, vector<vector<int> > array) { 4 for(auto vec_out:array){ 5 auto begin=vec_out.begin(),end=vec_out.end(),mid=begin+(end-begin)/2; 6 while(mid!=end && target!=*mid){ 7 if(target<*mid) 8 end=mid; 9 else 10 begin=mid+1; 11 mid=begin+(end-begin)/2; 12 } 13 if(mid!=end&&target==*mid) return true; 14 } 15 return false; 16 } 17 };