美文网首页
Java 数组折半查找

Java 数组折半查找

作者: ShanJiJi | 来源:发表于2017-08-03 17:19 被阅读43次

java 数组折半查找

    public static void main (String[] args) {

        // 数组折半查找
        int[] arr = {1,2,3,4,5,6,7};
        int index = binarySearch(arr,2);
        System.out.println(index);
    }


    // 数组折半查找
    public static int binarySearch(int[] arr,int key) {

        // 数组折半查找原理
        // PS 前提:被查找的数组中的元素必须是有序排列的

        // 定义三个指针变量
        int min = 0;
        int max = arr.length - 1;
        int mid = 0;

        // 循环折半,条件 min <= max
        while (min <= max) {
            // 工时,计算中间索引
            min = (min + max)/2;
            //  让被找元素和中间索引元素进行比较
            if (key > arr[mid]) {
                // 移动最小索引位置
                min = mid + 1;
            }
            else if (key < arr[mid]) {
                // 移动最大索引位置
                max = mid - 1;
            }
            else {
                // 找到了
                return mid;
            }
        }
        // 返回未找到
        return -1;

    }


相关文章

  • Java 数组折半查找

    java 数组折半查找

  • C语言折半查找

    折半查找 折半查找的注意点折半查找只能查找有序数组的值 折半查找的逻辑1.把数组第一个元素的索引作为最小值,最后一...

  • 二分查找

    概念二分查找又叫折半查找,从排序数组中查找元素的位置。 图示二分查找 Java实现 复杂度T(n)=T(n/2)+...

  • 顺序查找

    1、顺序查找a为数组,n为查找的数组个数,key为要查找的关键字; 2、顺序查找_哨兵 3、折半查找算法假设数组a...

  • PHP查找算法

    静态查找 顺序查找 折半查找 递归折半查找

  • 数组排序与折半查找

    声明一个数组 再声明用来打印数组和交换两个变量的值的function 选择排序 拿其中一个值和其他值依次比较,完全...

  • 二分查找法

    使用二分查找的前提是,查找的数组顺序必须是有序的。 二分查找又称折半查找,通过定义有序数组(左小右大)的首元素的索...

  • 算法(一)查找算法 平衡二叉树,红黑树,B树等

    顺序查找 略 折半查找 折半查找,也称二分查找,在某些情况下,折半查找比顺序查找效率更高(要求静态查找表中数据必须...

  • Java数据结构与算法:查找算法

    在java中,我们常用的查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 1、线性查找 ...

  • JavaScript二分查找

    二分查找: 也称为折半查找,是指在有序的数组里找出指定的值,返回该值在数组中的索引。 查找步骤如下: 1.从有序数...

网友评论

      本文标题:Java 数组折半查找

      本文链接:https://www.haomeiwen.com/subject/zowplxtx.html