二分查找

二分查找针对的是一组有序的数组

找到数组的中间值,然后用你要查找的元素和中间值比较

比中间值大去中间值的右边,比中间值小去中间值的左边

代码是利用了数组的高低下标实现的

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;
}
原文地址:https://www.cnblogs.com/TheQi/p/9103869.html