我的日常

登录/注册
您现在的位置:论坛 资料库 JAVA开发 > 二分查找算法
总共48087条微博

动态微博

查看: 1560|回复: 1

二分查找算法

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-07-16 21:34:29 |只看该作者 |倒序浏览
    /**
    * 递归的
    * @param dataset
    * @param data
    * @param beginIndex
    * @param endIndex
    * @return
    */
    public int halfFind(int[] dataset, int data, int beginIndex, int endIndex)
    {
    int midIndex=(beginIndex+endIndex)/2;
    if(data<dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex)
    {
    return -1;
    }
    while(beginIndex<endIndex)
    {
    if(data<dataset[midIndex])
    {
    return halfFind(dataset, data, beginIndex, midIndex-1);
    }
    if(data>dataset[midIndex])
    {
    return halfFind(dataset, data, midIndex+1, endIndex);
    }
    if(data==dataset[midIndex])
    {
    return midIndex;
    }
    }
    return -1;
    }

    /**
    * 非递归
    * @param dataset
    * @param data
    * @return
    */
    public int halffind(int[] dataset, int data)
    {
    int beginIndex = 0;
    int endIndex = dataset.length - 1;
    int halfIndex = -1;
    if (data < dataset[beginIndex] || data > dataset[endIndex] || beginIndex > endIndex)
    {
    return -1;
    }
    while (beginIndex < endIndex)
    {
    halfIndex = (beginIndex + endIndex) / 2;
    if (dataset[halfIndex] < data)
    {
    beginIndex = halfIndex;
    }
    if (dataset[halfIndex] > data)
    {
    endIndex = halfIndex;
    }
    if (dataset[halfIndex] == data)
    {
    return halfIndex;
    }
    }
    return -1;
    }


    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    1

    主题

    0

    听众

    348

    金钱

    四袋长老

    该用户从未签到

    沙发
    发表于 2016-05-15 20:44:11 |只看该作者
    楼主好厉害
    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表