package practice;
import java.util.Arrays;
public class test {
public static void main(String args[]){
int arr[]=new int[]{4,25,10};
Arrays.sort(arr);
int index=Arrays.binarySearch(arr,0,2,8);
System.out.println(index);
}
}
输出的结果为什么不是-1
作者: 黑马-胡明 时间: 2014-8-23 13:52
角标越界了吧···作者: cs8630323 时间: 2014-8-23 14:03
看api
返回:
如果它包含在数组的指定范围内,则返回搜索键的索引;否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点:即范围中第一个大于此键的元素索引,如果范围中的所有元素都小于指定的键,则为 toIndex。注意,这保证了当且仅当此键被找到时,返回的值将 >= 0。作者: 粺¹³¼畅 时间: 2014-8-23 14:28
binarySearch
public static int binarySearch(char[] a,
int fromIndex,
int toIndex,
char key)使用二分搜索法来搜索指定的 char 型数组的范围,以获得指定的值。必须在进行此调用之前对范围进行排序(通过 sort(char[], int, int) 方法)。如果没有对范围进行排序,则结果是不确定的。如果范围包含多个带有指定值的元素,则无法保证找到的是哪一个。