//针对已经排序好的数组进行查找(对上面代码进行的改进)public static boolean binarySearch(int[]array,int target){int left=0;int right=array.length-1;//下标int mid=(left+right)/2;while(array[mid]!=target&&right>left){System.out.println("进来"+"中间值为:"+array[mid]);if(array[mid]>target){right=mid-1;}else if(array[mid]<target){left=mid+1;}mid=(left+right)/2;//判断在缩小范围后,新的left或者right是否会将target排除if(array[right]<target){break;//若缩小后right比target小,即target不在数组中}else if(array[left]>target){break;//若缩小后left比target大,即target不在数组中}}return(array[mid]==target);}//main方法测试
public static void main(String[] args) {int a[]= {1,2,5,6,7};int target=2;/*** 二分法*//*boolean c=binarySearch(a,target);System.out.println("c="+c);*/}
希望对你有所帮助!