当前位置:编程学习 > JAVA >>

二分法查找

  采用二分法查找时,数据需是排好序的(升序还是降序)。假定是升序,其思想为:对于给定的值a,从序列的中间位置开始比较,如果当前位置的值等于a,那么查找成功;如果a小于当前位置的值,则到前半段去查找;反之,则到后半段去查找。
      用java实现如下:
      public class SearchTest{
      public static int LookFor(int[] array, int value) {
      int higher,middle,lower = 0;//头初始为0
      higher = array.length - 1;//尾长度
      while(lower < higher){
               middle = (lower + higher)/2;
               if(value == array[middle]){
                     return middle;//查找到,返回数据位置。
               }
               else if(value > array[middle]){
                         lower = middle + 1;//大于中间值,去后半段查找,此时lower值发生变化
              }
             else if(value < array[middle]){
                       higher = middle - 1;//小于中间值,去前半段查找,此时higher的值发生变化
             }
             return  -1;
      }
      }
      public static void main(String[] args){
               int[] a = {0,1,2,3,4,5,6,7,8,9};
               int temp = LookFor(a, 8);
               System.out.println(temp);
    }
    }
补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,