二分查找针对的是一组有序的数组
找到数组的中间值,然后用你要查找的元素和中间值比较
比中间值大去中间值的右边,比中间值小去中间值的左边
代码是利用了数组的高低下标实现的
int BinaryChop(int arr[],int nLength,int nNum)
{
if(arr == NULL || nLength <= 0)return -1;
int nMid; //中间下标
int nLow; //低下标
int nHigh; //高下标
nLow = 0;
nHigh = nLength-1;
while(nLow <= nHigh)
{
//计算中间下标
//由于害怕越界,我们将mid =(low+high)/2换个形式
nMid = nLow + (nHigh-nLow)/2;
if(arr[nMid] == nNum)
{
return nMid;
}
else if(arr[nMid] > nNum)
{
nHigh = nMid-1;
}
else
{
nLow = nMid+1;
}
}
return -1;
}