二分法

 public static int binarySearch(int[] data,int aim){
  
  
  //以int数组为例,aim为需要查找的数  
    int start = 0;
    int end = data.length-1;
    int mid = (start+end)/2;//a   
    while(data[mid]!=aim&&end>start){//如果data[mid]等于aim则死循环,所以排除   
   if(data[mid]>aim){
   end = mid-1;
  }
  else if(data[mid]<aim){
  start = mid+1;
  }
   mid = (start+end)/2;//b,注意a,b  
  }
  return (data[mid]!=aim)?-1:mid;//返回结果  
    
   }

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