自己理解的:
int BinSch(int low,int high,bool cmp()) //low和high表示二分所查找到范围
// key表示查找数值
{
//判断是否有元素
if (low<=high)
{
int mid = (low+high)/2; //mid是中点位置
//三种情况= < >
if(key == Array[mid])
return mid; //=返回位置(中点)
else if(key<Array[mid])
//移动low和high
//缩小查找空间,取中点一边进行递归
return BinSearch(low,mid-1,cmp());
else if(key>Array[mid])
return BinSearch(mid+1,high,cmp());
}
else
return -1;
}
cmp是判断函数,根据不同的题目要求,内容不同,暂不做分析。
查到的关键代码如下:
int BinSearch(int Array[],int low,int high,int key) //low和high表示二分所查找到范围
// key表示查找数值
{
//判断是否有元素
if (low<=high)
{
int mid = (low+high)/2; //mid是中点位置
//三种情况= < >
if(key == Array[mid])
return mid; //=返回位置(中点)
else if(key<Array[mid])
//移动low和high
//缩小查找空间,取中点一边进行递归
return BinSearch(Array,low,mid-1,key);
else if(key>Array[mid])
return BinSearch(Array,mid+1,high,key);
}
else
return -1;
}