java 二分查找法

3566阅读 0评论2012-07-19 DFlinux
分类:Java

注意:由于二分查找法的原理,首先得保证要查找的数组是一个有序数列,所以在查找之前必须做一个排序的工作。
 
代码如下:

点击(此处)折叠或打开

  1. //二分查找法

  2. class Find
  3. {
  4.     public void find(int liftIndex,int reghtIndex,int val,int arr[])
  5.     {
  6.         /*
  7.          * liftIndex 最左边的下标
  8.          * reghtIndex 最右边的下标
  9.          * val 要查找的数
  10.          * midIndex 中间数的下标
  11.         */
  12.         int midIndex=(liftIndex+reghtIndex)/2;
  13.         
  14.         if(liftIndex<=reghtIndex)
  15.         {
  16.             //比较

  17.             //如果要查找的数比中间的数大则接下来在右边找

  18.             if(val>arr[midIndex])
  19.             {
  20.                 find(midIndex+1,reghtIndex,val,arr);
  21.             }
  22.             //如果要查找的数比中间的数小则接下来在左边找

  23.             else if(val<arr[midIndex])
  24.             {
  25.                 find(liftIndex,midIndex-1,val,arr);
  26.             }
  27.             //如果刚好相等,则找到了

  28.             else if(val==arr[midIndex])
  29.             {
  30.                 System.out.println("找到"+val+"了,是第"+(midIndex+1)+"个数字");
  31.             }
  32.         }
  33.     }
  34. }

上一篇:java排序的几种方法
下一篇:java 排序方法补充 快速排序法