binarySearch函数错误

时间:2016-01-24 18:04:19

标签: java

import java.lang.*;
import java.util.*;
public class AnotherArrayPractice{
public static void main (String[] args){
  int [] arr={130,10};
  System.out.println(arr[1]);
  System.out.println(Arrays.binarySearch(arr,10));
  System.out.println(Arrays.binarySearch(arr,130));

  }
}

打印结果如下:10,-1,0。 我很困惑为什么binarySearch(arr,10)给了我-1,而实际上10在数组中

2 个答案:

答案 0 :(得分:4)

正如您可以从文档中读到的那样:

  

java.util.Arrays.binarySearch(int [] a,int key)方法使用二进制搜索算法在指定的int数组中搜索指定的值。在进行此调用之前,必须对数组进行排序。如果是未排序,结果未定义。

所以你必须才能订购数组!

相反,如果您使用未排序,则结果为未定义

答案 1 :(得分:1)

"数组必须排序"

根据binarySearch规范