版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/alw_123/article/details/79681374
0.二分查找法
二分查找法就是在有序序列中不断分解三个部分(左:小于待查找的元素的区域,右:大于待查找元素的区域,中:中位数)。若待查找的元素与中位数相等,那么说明已经查找到想要查找的元素。否则就看待查找元素的值比中位数大还是小,如果小,就继续将左半部分分解成三个部分,如果大,就将右半部分分解成三个部分,以此类推。直到无法分解或找到待查找元素为止。
1. 代码实现
template<class T>
int binary_search(T arr[], int n, T target)
{
int l = 0 , r = n-1;
while (l <= r)
{
int mid = l + (r - l) / 2;
if (arr[mid] == target)
{
return mid;
}
else if (arr[mid] < target)
{
l = mid + 1;
}
else
{
r = mid - 1;
}
}
return -1;
}