二分法查找

上一篇 / 下一篇  2012-06-12 22:39:23 / 个人分类:java


public class test1 {
 static int  numArr[];
 
 
 //二分法查找
  static int find(int value)
 {
  int size = numArr.length;
  int mid, right, left;
  left=0;
  right=size-1;
  
  //value 最小
  if(value<numArr[0]) return size;
  
  //value 最大
  if(value>numArr[right]) return size;
  
  //鉴于之间
  while(true)
  {
   mid=(left+right)/2;
   
   if(value==numArr[mid]) return mid;
   else if(left ==right) return size;
   
   else if(value>numArr[mid] )
   {
    left=mid+1;
    
   }
   else{
    right=mid-1;
   }
    
   
  }
  
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
   numArr= new int[9];
  
   for(int i=0; i<9;i++)
   {
    numArr[i]=i;
   }
  System.out.print(find(4));

 }
}

TAG:

 

评分:0

我来说两句

Open Toolbar