美文网首页
算法基础—二分法查找

算法基础—二分法查找

作者: JackDaddy | 来源:发表于2021-05-10 10:30 被阅读0次

一、前言

    二分法查找又称为折半查找,二分法查找的基本思想是把数组中的元素从小到大有序地存放进数组中,首先将给定值与数组中间位置的值作比较,如果相等,则匹配成功。否则,若比较值小了,则在数组的前半部分继续二分法查找;若比较值大了,则在数组后半部分进行二分法查找。如此循环往复,直到比较值与中间值匹配,完成查找。

二分查找

二、代码实现

/**
 * 二分法查找
 */
public class BinarySearch {

    public static void main(String[] args) {

        int[] array = {81, 51, 88, 15, 59, 20, 1, 50, 66, 77};
        //打印数组
        System.out.println(Arrays.toString(array));
        //对数组进行排序
        Arrays.sort(array);
        //打印排序数组
        System.out.println(Arrays.toString(array));

        int index = binarySearch(array, 77);
        System.out.println("查找的值为:77,下标为:" + index);
    }

    public static int binarySearch(int[] arrays, int value) {
        if (arrays.length <= 0) {
            return 404;
        }
        int low = 0;
        int high = arrays.length - 1;
        while (low <= high) {
            int mid = (low + high) / 2;
            if (arrays[mid] == value) {
                return mid;
            }
            if (value < arrays[mid]) {
                high = mid - 1;
            } else {
                low = mid + 1;
            }
        }

        return 404;
    }
}
以下是输出结果,其中第一行是未排序的数组,第二行是排序完的数组: 输出结果

相关文章

  • Swift的二分法查找实践

    Swift的二分法查找实践 在这篇教程中我们会使用计算机科学里一个基础的算法:二分法查找binary search...

  • 查找算法

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

  • 刷前端面经笔记(九)

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

  • 算法图解1-2/11

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

  • 查找算法

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

  • 前端面试之算法二分法

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

  • 算法

    一.算法基础--算法的特性 二.算法基础--算法的复杂度 三.顺序查找和二分查找 顺序查找 二分查找(前提是有序的...

  • 二分法查找

    二分法查找 : 目的 : 查找一个数组中是否含义某个元素 : 有返回数组中的位置 ,没有返回 -1 算法: 二分法...

  • 解析前端面试之二分查找算法

    二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。 二分法查找的思路如下: (1)首先,从数组的...

  • 算法:二分法查找(折半查找法)

    算法:二分法查找(折半查找法) 这是最经典的折半查找,而在面试的时候往往会对某些经典的数据结构和算法进行魔改,这道...

网友评论

      本文标题:算法基础—二分法查找

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