继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

二分查找法

一只名叫tom的猫
关注TA
已关注
手记 346
粉丝 62
获赞 329

1,二分查找法,其实就是通过三个数来查找

2,选一个开始值,选一个末尾值,在选数组中间值,

3,在用你想查找的值,做比较,如果大于中间值那么把开始值放当刚求的中间值,也就是把中间值当成开始值,继续求平均值,继续跟提供的值做比较

如果是小于中间值那么旧把末尾值变成中间值的位置,继续刚刚的操作,

4,这个比冒泡跟递归要快,但是缺点里面要是有相同数就你懂的,所以所有排序都是要你自己数据结构是什么了,没有好与坏方法,

上代码:/**

 * 二分查找法
 */
public static int soutBifurcation(int[] array,int fromIndex,int toIndex,int key){
    int low=fromIndex;
    int high=toIndex-1;
    while(low<=high){
        int mid=(low+high)/2;//   >>>1  无符号除2
        int midVal=array[mid];
        if(key>midVal){//去右边找
            low=mid+1;
        }else if(key<midVal){
            high=mid-1;
        }else{
            return mid;
        }
    }
    return -(low+1);
}

原文链接:http://www.apkbus.com/blog-340477-76623.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP