//基础版本
int binarySearch(const vector<int> data, int num)
{
int begin = 0;
int end = sizeof(data) - 1;
while(begin <= end){
int mid = (end - begin)/2 + begin;
if(num == data[mid]) return mid;
else if(num > data[mid]) begin = mid +1;
else end = mid - 1;
}
return -1;
}
//加强版(有序序列中最先出现的num)//有重复数
int binarySearch(const vector<int> data, int num)
{
int begin = 0;
int end = sizeof(data) - 1;
while(begin <= end){
int mid = (end - begin)/2 + begin;
if(data[mid] <= num) begin = mid + 1;
else end = mid -1;
}
if(data[begin] == num && begin <= sizeof(data) - 1)
return begin;
else return -1;
}
二分查找 两种版本
猜你喜欢
转载自blog.csdn.net/ladykiller21/article/details/80414691
今日推荐
周排行