Javabinarysearch方法原理是什么

介绍

Javabinarysearch方法原理是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

这篇文章主要介绍了Java binarysearch方法原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

首先数组排序需要进口java.util。数组类

binarysearch有两个用法,一个是在整个数组里搜索,一个是在指定范围搜索,其实都是差不多的,可以将前者视为后者的特殊情况。

用法1

binarysearch([],对象键)

对象是目标数组,关键是目标值,要求目标数组必须要经过排序的,否则无法找到正确的结果

查询无非就是两种结果,一种是目标值在目标数组里,另一种是不在

所以返回值也分为正负两种,目标值在目标数组内的,返回下标(如果有多个相同的,无法确定找到的是哪个,因为是二分搜索)

目标值不在数组内的,返回-(第一个大于目标值的元素的下标+ 1),类似的,如果数组内的值都比目标值小,则是返回——(数组长度+ 1)

样例:

进口java.util.Arrays;公共类数{,公共静态void main (String [] args){新int, int []=[] {1, 3, 4, 6, 8, 9};,int x1=数组。binarySearch (5);,int x2=数组。binarySearch (4);,int x3=数组。binarySearch (0);,int x4=数组。binarySearch (10);,System.out.println (x1 +“;“+ x2 +“;“+ x3 +“;“+ x4);}大敌;,,}

输出:

4 2 1 7

也可以这么理解:

对应相应的位置输出即可。

用法2

binarySearch (int对象[]、int fromIndex toIndex,对象键)

加了两个int变量,代表区间的开始和结束,从fromIndex(包含)到toIndex(不包含)这个区间里面搜索,返回值和前面用法1类似,唯一有所不同的是,当如果区内的值都比目标值小,则是返回(toIndex + 1),如果区间内的值都比目标值大,则返回(fromIndex + 1),仔细想想不难理解,用法1就相当于fromIndex为0且toIndex为数组长度的用法2 .

关于Javabinarysearch方法原理是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

Javabinarysearch方法原理是什么