这几天学数据原理,看到了一个比较实用的2分算法(递归)分享一下。
int BinarySerach(const int *a,const int x,const int left,const int right)
{
int middle=(right+left)/2;
if(left<=right)
{
if(x<a[middle]) return BinarySerach(a,x,left,middle-1);
else if(x>a[middle]) return BinarySerach(a,x,middle+1,right);
else return middle;
}
return -1;
}