【问题标题】:binarySearch function error [duplicate]binarySearch 函数错误 [重复]
【发布时间】:2016-01-25 02:44:05
【问题描述】:
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 在数组内

【问题讨论】:

    标签: java


    【解决方案1】:

    正如您从文档中看到的那样:

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

    所以您必须在此之前对数组进行排序!

    如果你使用未排序,结果是undefined

    【讨论】:

      【解决方案2】:

      "数组必须排序"

      根据 binarySearch 规范

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-28
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2017-03-20
        • 2014-12-17
        • 2016-05-24
        • 2017-06-18
        相关资源
        最近更新 更多