注意:由于二分查找法的原理,首先得保证要查找的数组是一个有序数列,所以在查找之前必须做一个排序的工作。
代码如下:
- //二分查找法
- 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)+"个数字");
- }
- }
- }
- }
阅读(3510) | 评论(0) | 转发(0) |