A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭小康 中级黑马   /  2012-12-11 11:01  /  1495 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

publicint binarySearch(int[] dataset,int data,int beginIndex,int endIndex)
    {
      int midIndex = (beginIndex+endIndex)/2;
      if(data <dataset[beginIndex] ¦ ¦data>dataset[endIndex] ¦ ¦beginIndex>endIndex)return -1;
      if(data <dataset[midIndex])
      {
          return binarySearch(dataset,data,beginIndex,midIndex-1);
      }elseif(data>dataset[midIndex])
      {
          return binarySearch(dataset,data,midIndex+1,endIndex);
      }else
      {
          return midIndex;
      }
    }

   

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

1 个回复

正序浏览
这个是二分法查找,查找前要先将数据排好序,  
int midIndex = (beginIndex+endIndex)/2; 这是得到数组中间位置的下标。
  if(data <dataset[midIndex]) 判断这个数和数组中间的那个数据值相比
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马