二分查找算法

    public   int  BinSearch(SeqList < int >  R,  int  Key)
    {
        
int  low  =   0 , high  =  R.GetLength()  -   1 , mid; // 置当前查找区间上、下界的初值
         while  (low  <=  high)
        { 
// 当前查找区间R[low..high]非空
            mid  =  (low  +  high)  /   2 ;
            
if  (R.Data[mid]  ==  Key)  return  mid;  // 查找成功返回
             if  (R.Data[mid]  >  Key)
                high 
=  mid  -   1 // 继续在R[low..mid-1]中查找
             else
                low 
=  mid  +   1 // 继续在R[mid+1..high]中查找
        }
        
return   - 1 // 当low>high时表示查找区间为空,查找失败
    }

你可能感兴趣的:(二分查找算法)