二分查找特定整数在整型数组中的位置

/** 
    *二分查找特定整数在整型数组中的位置(递归) 
    *@paramdataset 
    *@paramdata 
    *@parambeginIndex 
    *@paramendIndex 
    *@returnindex 
    */ 
    public int binarySearch(int[] dataset,int data,int beginIndex,int endIndex) { 
      int midIndex = (beginIndex+endIndex)/2; 
      if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)return -1; 
      if(data <dataset[midIndex])  { 
          return binarySearch(dataset,data,beginIndex,midIndex-1); 
      }else if(data>dataset[midIndex])  { 
          return binarySearch(dataset,data,midIndex+1,endIndex); 
      }else  { 
          return midIndex; 
      } 
    } 
    
    /** 
    *二分查找特定整数在整型数组中的位置(非递归) 
    *@paramdataset 
    *@paramdata 
    *@returnindex 
    */ 
    public int binarySearch(int[] dataset ,int data) 
    { 
      int beginIndex = 0;  
      int endIndex = dataset.length - 1;  
      int midIndex = -1; 
      if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)return -1; 
      while(beginIndex <= endIndex) { 
          midIndex = (beginIndex+endIndex)/2; 
          if(data <dataset[midIndex]) {  
          endIndex = midIndex-1;  
          } elseif(data>dataset[midIndex]) {  
          beginIndex = midIndex+1;  
          }else 
          { 
          return midIndex; 
          } 
      } 
      return -1; 
    } 
 

你可能感兴趣的:(二分查找特定整数在整型数组中的位置)