二分查找(折办查找)的前提: 数组必须为有序数组
public class ArraySearch {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a={1,2,3,4,5,6,7,8,9,10};
ArraySearch arraysearch= new ArraySearch();
arraysearch.binnarySearch(a, 6);
}
public boolean binnarySearch(int[] array, int value){
int low=0;
int high=array.length-1;
int middle;
while(low<=high){
//middle=(low+high)/2; //建议不要这么写,因为low+high有可能会超出整型值的范围
middle = low+(high-low)/ 2;
if(value==array[middle]){
System.out.println("找到");
return true;
}
if(value>array[middle]){
low=middle+1;
}else{
high=middle-1;
}
}
return false;
}
}