递归:

 

int BinSearch(int Array[],int low,int high,int key/*要找的值*/)  
 {  
     if (low<=high)  
     {  
         int mid = (low+high)/2;  
         if(key == Array[mid])  
             return mid;  
         else if(key<Array[mid])  
             return BinSearch(Array,low,mid-1,key);  
         else if(key>Array[mid])  
             return BinSearch(Array,mid+1,high,key);  
     }  
     else  
         return -1;
}

 

非递归:

 

int BinSearch(int Array[],int SizeOfArray,int key/*要找的值*/)  

{  
    int low=0,high=SizeOfArray-1;  
    int mid;  
    while (low<=high)  
    {  
        mid = (low+high)/2;  
        if(key==Array[mid])  
            return mid;  
        if(key<Array[mid])  
            high=mid-1;  
        if(key>Array[mid])  
            low=mid+1;  
    }  
    return -1;  
}

 

相关文章:

  • 2021-11-03
  • 2022-12-23
  • 2021-11-12
  • 2021-09-01
  • 2021-07-22
  • 2022-12-23
猜你喜欢
  • 2022-01-27
  • 2021-10-08
  • 2021-09-30
  • 2021-12-01
  • 2021-07-14
  • 2021-05-26
相关资源
相似解决方案