希望有人知道这个 Java 认证问题的答案:
public static void main(String[] args) {
String[] sa = {"d", "c", "a", "b" };
int x = Arrays.binarySearch(sa, "b");
Arrays.sort(sa);
int y = Arrays.binarySearch(sa, "b");
System.out.println(x + " " + y);
}
哪两个结果是可能的?(选择两项。)
A)7 0
B)7 1
C)7 3
D)-1 0
E)-1 1
F)-1 3
唯一正确的答案是 E) -1 1,因为如果您使用二分搜索算法,这是唯一可能的输出。但是他们要我选择两个...所以第二个必须是 B) 7 1 然后,因为排序数组中的第二个 binarySearch 将始终返回1
。
所以我的问题是,为什么 B) 7 1 是可能的结果?更具体地说:未排序数组中的第一个 binarySearch 怎么可能返回 7?
提前致谢