JAVA语言提供了两种方法,sort()方法和 binarySearch()方法,可以方便地对数组进行排序和搜索。
sort()方法使用改进的快速排序算法将数组中的元素进行升序排列,而 binarySearch()方法在一个数组中搜索某个指定值。
因为 binarySearch()方法使用二进制的搜索方法,要求数组是有序数组。因此在实际使用时,调用 binarySearch()方法之前通常先调用 sort()方法。使用导入语句 import java.util.*; 。
关于 binarySearch()的返回值:
如果目标数包含在数组中,则返回搜索键的索引即数组元素下标;否则返回 (-(插入点) - 1)。
插入点被定义为将键插入数组的那一点:即第一个大于此数的元素索引,如果数组中的所有元素都小于指定的键,则为 a.length。注意: 这保证了当且仅当此键被找到时,返回的值将 >= 0。
否则返回 (-(插入点) - 1)这句话要注意:要是查询的的值小于数组里面 的最小值那么结果(-(0)-1结果就是-1),如果查询的 值大于数组里面的最大值。那么结果就是(-(它的索引值)-1结果就是-(1+索引值))。
1 import java.util.*; 2 public class JAVA1{ 3 public static void main(String[] args){ 4 Scanner in=new Scanner(System.in); 5 System.out.println("Enter the number of array values:"); 6 int n=in.nextInt(); 7 int[] arr=new int[n]; 8 for(int i=0;i0){28 System.out.println("This item is at location "+(location+1)+" in the sorted arry.");29 }else{30 System.out.println("This item is not in the list.");31 }32 } 33 }