java Arrays.binarySearch 找不到目标

发布于 2024-09-18 04:55:13 字数 287 浏览 4 评论 0原文

String[] sortedArray = new String[]{"Quality", "Name", "Testing", "Package"};   

// Search for the word "cat" 
int index = Arrays.binarySearch(sortedArray, "Quality");  

我总是得到-3。问题出在“名称”。为什么我的数组中不能有 "Name" ?有什么想法吗?

String[] sortedArray = new String[]{"Quality", "Name", "Testing", "Package"};   

// Search for the word "cat" 
int index = Arrays.binarySearch(sortedArray, "Quality");  

I always get -3. Problem is in "Name". Why I can not have "Name" in my array? Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

灯下孤影 2024-09-25 04:55:13

为了使用 binarySearch,您需要先自己对数组进行排序:

String[] sortedArray = new String[]{"Quality", "Name", "Testing", "Package"};   

java.util.Arrays.sort(sortedArray);

int index = Arrays.binarySearch(sortedArray, "Quality");  

In order to use binarySearch, you will need to sort the array yourself first:

String[] sortedArray = new String[]{"Quality", "Name", "Testing", "Package"};   

java.util.Arrays.sort(sortedArray);

int index = Arrays.binarySearch(sortedArray, "Quality");  
无妨# 2024-09-25 04:55:13

数组必须是有序的。来自binarySearch()的Javadoc:

在进行此调用之前,必须根据其元素的自然顺序对范围进行升序排序。如果未排序,则结果未定义。

The array is must be sorted. From Javadoc of binarySearch():

The range must be sorted into ascending order according to the natural ordering of its elements prior to making this call. If it is not sorted, the results are undefined.

旧人九事 2024-09-25 04:55:13

数组必须经过排序才能进行二分搜索。 binarySearch 说的是:

在进行此调用之前,必须根据其元素的自然顺序(如通过 sort(Object[]) 方法)对数组进行升序排序。 如果未排序,则结果未定义。

(强调。)

原因很简单。二分查找算法的前提条件是输入数组已排序。

An array must be sorted for binary search to work. The javadoc for binarySearch says this:

The array must be sorted into ascending order according to the natural ordering of its elements (as by the sort(Object[]) method) prior to making this call. If it is not sorted, the results are undefined.

(Emphasis added.)

And the reason is simple. The binary search algorithm has a precondition that the input array is sorted.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文