注意:由于二分查找法的原理,首先得保证要查找的数组是一个有序数列,所以在查找之前必须做一个排序的工作。
//二分查找法 class Find { public void find(int liftIndex,int reghtIndex,int val,int arr[]) { /* * liftIndex 最左边的下标 * reghtIndex 最右边的下标 * val 要查找的数 * midIndex 中间数的下标 */ int midIndex=(liftIndex+reghtIndex)/2; if(liftIndex<=reghtIndex) { //比较 //如果要查找的数比中间的数大则接下来在右边找 if(val>arr[midIndex]) { find(midIndex+1,reghtIndex,val,arr); } //如果要查找的数比中间的数小则接下来在左边找 else if(val<arr[midIndex]) { find(liftIndex,midIndex-1,val,arr); } //如果刚好相等,则找到了 else if(val==arr[midIndex]) { System.out.println("找到"+val+"了,是第"+(midIndex+1)+"个数字"); } } } }