疯狂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培训机构(疯狂软件学院http://www.fkjava.org/抢座热线:020-28309358,020-28309378咨询QQ:707552864,544627560 ),教师拥有软件开发经验,在教学中注重实践性,让学员在最短的时间内学到最前沿的编程技术。通过大量全真企业项目训练,让你成为社会急需的软件工程师。通过很短几个月的java培训,学员具备软件开发能力,可以独立进行java软件开发,而且java工程师的薪资在5000元以上,对自己做一个明智的选择,从此改变自己求职时的尴尬境地。