美文网首页
二分法查找

二分法查找

作者: 王魔王 | 来源:发表于2018-11-25 21:00 被阅读0次

二分法查找的前提是数组必须排序!!!
二分法查找的前提是数组必须排序!!!
二分法查找的前提是数组必须排序!!!
二分法查找:依次将所查的数据与中心数据进行对比,根据大小调整数据边界。
具体来讲,如果所查数据小于中间的数据,那么说明所查数据在中间数据的左侧,那么将查询范围缩小到开始与中心数据之间,如果所查数据大于中心数据,那么说明所查数据在中心数据右侧,那么将查询范围缩小到中心数据与结尾数据之间。重复此过程,直到找到该数据为止。

二分法查找的代码实现:

 /**
     * 二分法查找
     * @return
     */
    private void twoPointQuery() {

        int[] source = {1, 2, 3, 6, 7, 8, 10};

        //查找6的索引
        int num = 12;//要查找的数字
        int start = 0;//查找的起始角标
        int end = source.length - 1;//查找的结尾角标
        int mid = (start + end) / 2;//查找的中间角标
        while (num != source[mid]) {
            if (source[mid] > num) {
                end = mid - 1;
            } else if (source[mid] < num) {
                start = mid + 1;
            }
            //防止死循环
            if (start>end){
                mid=-1;// -1代表没有这个数字
                break;
            }
            mid = (start + end) / 2;
        }

        // 循环结束的时候,mid的值即为要查找的角标值
        Log.d("======", "要查找的num的角标为: "+mid);

    }

相关文章

  • 二分法查找

    二分法基本查找 二分法遍历查找

  • 二分法查找

    二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法查找的前提是数组必须排序!!!二分法...

  • 刷前端面经笔记(九)

    1.JavaScript实现二分法查找? 二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。查找...

  • 数据结构-递归

    二分法查找

  • 查找算法

    三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表

  • 二分查找

    以二分法来提升查找效率 二分法查找到key的合适位置 put get delete 二分查找的查找操作为O(log...

  • 算法和排序

    1、线性查找 2、二分法查找 3、冒泡排序

  • 查找算法

    查找算法 顺序查找法 时间复杂度:O(n) 二分法查找 二分法查找适用于有顺序的序列 时间复杂度:O(n) 核心思...

  • 算法图解1-2/11

    原书作者 Aditya Bhargava 1 算法简介 1.1 二分法查找 二分法查找,正是猜数字游戏的玩法:A...

  • 前端面试之算法二分法

    使用二分法的前提是,目标数组的元素必须是有序排列的,所以二分法属于有序查找算法 二分法又称为“折半查找”,从数组的...

网友评论

      本文标题:二分法查找

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