使用工具类ArrayUtil的原因是:在有打印方法printArr,排序方法selectSort,二分查找法binarySearch中,需要使用这些方法,在A类,添加这些方法,在B类中添加这些方法,就会显得很不方便。 如果将这些方法封装在一个工具类ArrayUtil中,就可以直接调用该类中的方法,类名.方法名。
package com.JAVABASIS5;
//数组操作的工具类,ArrayUtil
public class ArrayUtil {
//二分法查找
static int binarySearch(int[] arr,int key){
int low =0;
int high = arr.length-1;
while(low<=high){ //low是不能大于high,当为一个数时,low是可以等于high。当需要有个判断,但不知道是什么判断条件,但low<=high是一定的
int mid =(low + high)/2; //将mid=(low+high)/2放入循环是因为每次循环中mid的值都可能会变的,根据条件而变。
if(arr[mid]>key){ //arr[mid]>key表示猜大了,范围在[arr[0],arr[mid]}.
high=mid - 1; //既然不是arr[mid],那么high就直接等于mid-1;
}
else if(arr[mid]