视窗
loading...
您现在的位置:首页 > IT认证 > JAVA >

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);

  }

  }

閵嗏偓

閵嗏偓

閵嗘劕鍘ょ拹锝咃紣閺勫骸鎷伴悧鍫熸綀鐠囧瓨妲戦妴锟�
閺堫剛鐝柈銊ュ瀻娣団剝浼呴弶銉︾爱娴滃簼绨伴懕鏃傜秹閿涳拷鐎电娴嗘潪鐣屾畱娣団剝浼呴幋鎴滄粦閸旀稒鐪伴弽鍥ㄦ娣団剝浼呴惃鍕毉婢跺嫸绱�閹存垳婊戠亸濠囧櫢娴f粏鈧懐娈戦悧鍫熸綀閽佹ぞ缍旈弶鍐跨礉鐎佃鍨滄禒顒冩祮鏉炵晫娈戞穱鈩冧紖婵″倹婀佸鍌濐唴閹存牗婀佹笟鍨綀閹存牞绻氬▔鏇氫繆閹垵顕崣濠冩閼辨梻閮撮幋鎴滄粦閿涘本婀扮粩娆庣窗缁斿宓嗛崚鐘绘珟閿涳拷鐎电懓甯崚娑樺敶鐎硅鍨滄禒顒佸姽閹板繑鏁禒姗€鈧倸缍嬮惃鍕归柊顒婄礉閼辨梻閮撮弬鐟扮础閿涙岸鍋栨禒锟�:webmaster@jscj.com閵嗏偓閻絻鐦介敍锟�4008816886

相关文章

无相关信息
更新时间2022-03-13 11:19:03【至顶部↑】
联系我们 | 邮件: webmaster@jscj.com | 客服热线电话:4008816886(QQ同号) |  濠电儑缍€椤曆勬叏閻愮鍋撻獮鍨仾婵犫偓閸パ屽殫妞ゆ棁顔婄换锟�

付款方式留言簿投诉中心网站纠错二维码手机版

客服电话:4008816886