public class binSearch { public static void main(String[] args) { int ary[] = {1,5,3,54,32,643,34,2543}; System.out.println(binSearch(ary,0,ary.length-1,643)); } public static boolean binSearch(int[] ary,int start,int end,int key){ int mid = (end - start)/2+start;//必须是 end-start不是end+start if (ary[mid] == key) return true; if (start>end){ //必须有 否则会报错,因为递归中可能会出现start>end的情况 return false; } if (key > ary[mid]){ return binSearch(ary,mid+1,end,key); } else if(key<ary[mid]){ return binSearch(ary,start,mid-1,key); } return true; } }