原 自学JVAVA---(27)--(内功心法【25】)二分法查找

二分法查找
【小城贝尔】
两头索引先定义,算出中间来对比。
如若大于要查找,中间索引将一少。
赋给后头的定义,中间求值在寻意。
如若大于要查找,中间索引加一好。
赋值前头的定义,仍求中间的真谛。
循环往复寻真意,只待匹配返求义。

注意:二分法(binary)查找需要先排序

public class Binary {
    public static void main(String[] args) { 
        int [] arr = {1,2,3,4,5};
        int i =  Binary.binarySerch(arr,5);
        System.out.println(i);
    }
    public static int binarySerch(int[] arr , int value){
        Arrays.sort(arr);
        int start = 0;
        int end = arr.length -1;
        while (start <= end){
            int middle = (start + end)/2;
            if(arr[middle] == value){
                return middle;
            }
            if(arr[middle] > value){
               end = middle - 1;
            }
            if(arr[middle] < value){
               start = middle +1;
            }
        }
        return -1;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值