博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java二分法
阅读量:4840 次
发布时间:2019-06-11

本文共 907 字,大约阅读时间需要 3 分钟。

public class Dichotomy {

    
    //定义查找次数
    static int count = 0;
    
    public static void main(String[] args) {
        
        //定义数组
        int [] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        
        //二分法查找
        int result = searchRecursive( array, 0, array.length - 1, 3);
        
        //打印结果
        System.out.println("二分法查找结果为=" + result);
        System.out.println("查找次数为=" + count);
    }
    
    /**
     * 执行递归二分查找,返回第一次出现该值的位置
     *
     * @param array
     *            已排序的数组
     * @param start
     *            开始位置
     * @param end
     *            结束位置
     * @param findValue
     *            需要找的值
     * @return 值在数组中的位置,从0开始。找不到返回-1
     */
    private static int searchRecursive(int[] array, int start, int end, int findValue) {
        
        //数组如果为空则返回-1
        if(array == null){
            
            return -1;
        }
        
        
        
        while(start <= end){
            
            count++;
            
            //获取中间位置
            int middle = (start + end) / 2;
            
            //获取中间值
            int middleValue = array[middle];
            
            if(middleValue == findValue){
                
                return middle;
            }else if(findValue < middleValue){
                
                end = middle - 1;
            }else{
                
                start = middle + 1;
            }
            
        }
        
        return -1;
    }
}

转载于:https://www.cnblogs.com/gslblog/p/6888327.html

你可能感兴趣的文章
poj 2887 Big String(块状链表)
查看>>
BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊(LCT裸题)
查看>>
lintcode-101-删除排序数组中的重复数字 II
查看>>
【BZOJ1925】 [SDOI2010] 地精部落(带有一堆性质的动态规划)
查看>>
python中urllib的urlencode与urldecode
查看>>
JS-基础-01.变量、基本数据类型
查看>>
iOS ---------NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)
查看>>
命名空间“System.Web”中不存在类型或命名空间名称“Optimization”(是否缺少程序集引用?)...
查看>>
Python异常 --Python
查看>>
Struts数据验证
查看>>
第十二章 动态内存
查看>>
句柄1
查看>>
vb.net入门+vs2010(20180208)
查看>>
一般jsp 翻页 选择 保留 代码
查看>>
操作系统环境变量LANG和NLS_LANG的关系
查看>>
存储过程简单Demo
查看>>
查看oracle实例名
查看>>
java hasmap对象的深复制实现:字节码复制和对象序列化成字符串复制比较。
查看>>
非一般的数据挖掘机:关联规则法
查看>>
粗糙的贝叶斯转化概率预测模型
查看>>