标签:二分查找 搜索 binary search
For a given sorted array (ascending order) and a target
number,
find the first index of this number in O(log n)
time
complexity.
If the target number does not exist in the array, return -1
.
If the array is [1,
2, 3, 3, 4, 5, 10]
, for given target 3
, return 2
.
二分查找
class Solution { public: /** * @param nums: The integer array. * @param target: Target number to find. * @return: The first position of target. Position starts from 0. */ int binarySearch(vector<int> &array, int target) { // write your code here int len = array.size(); int i = recurse(array,target,0,len); if (i != -1) { while (array[i-1] == target) { --i; } return i; } return -1; } int recurse(vector<int> &array, int target,int lo,int hi) { if (lo == hi) { return -1; } int mid = (lo + hi)>>1; if (target > array[mid]) { return recurse(array,target,mid+1,hi); } else if (target < array[mid]) { return recurse(array,target,lo,mid); } else { return mid; } } };
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:二分查找 搜索 binary search
原文地址:http://blog.csdn.net/susser43/article/details/47259983