美文网首页
Java--二分法查找

Java--二分法查找

作者: 李赫尔南 | 来源:发表于2022-09-29 09:07 被阅读0次

  二分法检索(binary search)又称折半检索,二分法检索的基本思想是设数组中的元素从小到大有序地存放在数组(array)中,首先将给定值key与数组中间位置上元素的关键码(key)比较,如果相等,则检索成功;
  否则,若key小,则在数组前半部分中继续进行二分法检索;
  若key大,则在数组后半部分中继续进行二分法检索。
  这样,经过一次比较就缩小一半的检索区间,如此进行下去,直到检索成功或检索失败。

二分法检索是一种效率较高的检索方法。比如,我们要在数组[7, 8, 9, 10, 12, 20, 30, 40, 50, 80, 100]中查询到10元素,过程如下:

二分法检索.png

【示例】二分法查找

import java.util.Arrays;
public class Test {
    public static void main(String[] args){
        int [] arr = { 30,20,50,10,80,9,7,12,100,40,8};
        int searchword = 20;//所要查找的数
        Arrays.sort(arr);//二分法查找之前,一定要对数组元素排序
        System.out.println(Arrays.toString(arr));
        System.out.println(searchWord+"元素的索引:"+ binarySearch(arr, searchWord));
    }
    public static int binarySearch(int[] array, int value) {
        int low = 0;
        int high = array.length - 1;
        while(low <= high) {
            int middle = (low + high) / 2;
            if (value == array [middle] ) {
                return middle; //返回查询到的索引位置
            }
            if (value > array[middle]) {
                low = middle + 1;
            }
            if (value < array[middle]) {
                high = middle - 1;
            }
        }
        return -1; //上面循环完毕,说明未找到,返回-1
    }
}

相关文章

  • 二分法查找

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

  • Java--二分法查找

      二分法检索(binary search)又称折半检索,二分法检索的基本思想是设数组中的元素从小到大有序地存放在...

  • 二分法查找

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

  • 刷前端面经笔记(九)

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

  • 数据结构-递归

    二分法查找

  • 查找算法

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

  • 二分查找

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

  • 算法和排序

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

  • 查找算法

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

  • 算法图解1-2/11

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

网友评论

      本文标题:Java--二分法查找

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