(c++)二分查找法(含测试用例)
算法基础 二分查找法 c++ 范围越界
·
本试验取材郭炜老师的《程序设计与算法》
从顺序查找到二分查找,改变了程序设计理念,到如今还有人不断努力实现耕耘,下面给出二分查找的源码,希望仔细揣摩二分查找法的精髓!
//二分查找法
#include<iostream>
using namespace std;
int BinarySearch(int a[],int size,int p){
int L = 0;
int R = size - 1;
while(L<=R){
int mid = L + (R-L)/2;
if(p==a[mid]){
return mid;}
else if(p>a[mid])
L = mid+1;
else
R = mid-1;
}
return -1;
}
int main()
{
int a[5]={1,2,3,4,5};
int d = BinarySearch(a,5,4);
cout << d << endl;
return 0;
}
总结:二分查找法,两个游标不断游来游去,是二分的核心,其中L+(R-L)/2能让程序不会因为L+R/2范围越界,也是一个不错的核心理念,挺不错的!
更多推荐
已为社区贡献10条内容
所有评论(0)