早教吧 育儿知识 作业答案 考试题库 百科 知识分享

假设double[]scores={1,2,3,4,5},则java.util.Arrays.binarySearch(scores,3.5)的返回值为:()A.0B.-4C.3D.-3E.4

题目详情
假设 double[] scores = {1,2,3,4,5},则
java.util.Arrays.binarySearch(scores,3.5)
的 返回值为:( )
A.0 B.-4 C.3 D.-3 E.4
▼优质解答
答案和解析
Array类的静态方法BinarySearch()运用二分法在排好序的数组中搜索与给定值相同的元素,只有当数组元素按升序排列的时候才起作用.该方法返回的值是int,对应于找到value时的位置索引值.如果value不再数组中,那么返回一个负值,这个负值是这样产生:将它应该在的那个索引位置值取负数,再减去1得到的值为返回的值.比如:
public static void main(String[] args) {
int[] number={1,2,4,5,8};
int position = java.util.Arrays.binarySearch(number,7);
System.out.println(position);
}
}
打印结果为-5.因为7应该在number的第五位,索引值为4,取负为-4,再减1,为-5.
如果不是升序排列的数组,那么它出来的结果不是报错,而是根据能得到的最小升序的部分数组进行查找.