欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java—简单二分查找

程序员文章站 2023-12-21 20:25:53
...

在介绍二分查找法之前,我们现在简述一个例子;随机有1~100个数字,并且是有序的,让你猜测其中一个数字,对于猜测的数字我们会有三种答案,分别是:大了,小了,相等。假如我们用一种最基本的for循环遍历的方法进行一一比较的话,假如这个数字在开始的位置还好,如果这个数字在最后的位置呢?那么就要用到这个二分查找的方法,举个栗子,假如我们要查找51这个数字,用普通的遍历进行查找的话,我们需要第51次才能找到这个值,但是我们用二分法的话,我们可以最少用两次的方法就可以把这个值找到,说的明确点就是,减少了查询的时间,在数据量特别的大的有序情况下,二分查找是一个很好的选择。废话不多少了,上demo:

public static void twoFind(int d,int[] g) {//d:要查询的值;g待查询的数组
        int end = g.length-1;
        int first  = 0;
        int c = (g.length-1)/2;

        while(true) {
            if(g[c] == d) {
                System.out.println(c + ""+g[c]);
                return;
            }
            if(first > end) {
                System.out.println("无值");
                return;
            }
            if(d > g[c]) {
                c = end -1;//要查询的值在后半部分
            }else {
                c = first +1;//要查询的值在前半部分
            }
        }
    }

对于一个有序的数据序列,二查找的方法不仅仅可以用于查找数据,也可以用于删除,插入数据,那样的话最好不要用数组

上一篇:

下一篇: