Hi!欢迎光临陕西省的权威思科、华为、Oracle、红帽、深信服、微软认证培训中心!
| 029-88235527
您现在所在位置:首页 > 新闻资讯 > 最新资讯 >

Java基本算法之二分查找算法

发布日期:2019-09-06 17:00:35点击次数:

分享到:
  今天西安鸥鹏java培训机构小编为大家分享Java基本算法之二分查找算法,希望此文能够帮助到正在学习java的小伙伴们,下面就随小编一起看看Java基本算法之二分查找算法吧。

Java基本算法之二分查找算法

  java二分查找算法

  每次查找取数组中位数的值进行比较,

  如果目标值值大于中位数的值,则截取中位数右侧的数组再次进行二分查找

  如果目标值小于中位数的值,则截取中位数左侧的数组再次进行二分查找

  直到找到相对应的中位数才终止查找算法。

  即每经过一次比较,查找范围就缩小一半。

  while循环实现二分查找

  privatestaticintbinSearch(intarray[],intvalue){intstart=0;

  intend=array.length-1;

  intmiddle;

  while(start<=end){

  middle=(end-start)/2+start;

  if(array[middle]<value){

  start=middle+1;

  }elseif(array[middle]>value){

  end=middle-1;

  }else{

  returnmiddle;

  }

  }

  return-1;

  }

  递归实现二分查找算法

  privatestaticintbinSearch(intarray[],intstart,intend,intvalue){

  intmiddle=(end-start)/2+start;

  if(array[middle]==value){

  returnmiddle;

  }

  if(start>=end){

  return-1;

  }elseif(array[middle]>value){

  returnbinSearch(array,start,middle-1,value);

  }else{

  returnbinSearch(array,middle+1,end,value);

  }

  }

  main方法中调用

  publicstaticvoidmain(String[]args){

  intarray[]={1,2,3,4,5};

  System.out.println("args=["+binSearch(array,0,array.length-1,3)+"]");

  }

  注意事项

  要求进行查找的数组必须是有序数组