public class BinarySearch {
public static void main(String[] args) {
int[] arr = produceArray();
int[] arr2 = new int[arr.length];
//将数组进行复制
System.arraycopy(arr, 0, arr2, 0, arr.length);
int binarySearch = Arrays.binarySearch(arr, 10);
int binarySearch2 = binarySearch(arr2,10);
System.out.println(binarySearch==binarySearch2);
}
//产生测试数组
public static int[] produceArray() {
Random random = new Random();
int[] arr = new int[100];
for (int i = 0; i < arr.length; i++) {
arr[i] = random.nextInt(100);
}
Arrays.sort(arr);
return arr;
}
//二分查找
public static int binarySearch(int[] arr2, int target) {
int low = 0;
int high = arr2.length-1;
while(low<=high) {
int mid = low +(high-low)/2;
if (arr2[mid] == target) {
return mid;
}
if (arr2[mid] <target) {
low = mid +1;
}
if (arr2[mid] > target) {
high = mid - 1;
}
}
return -(low+1);
}
}
java实现二分查找
最新推荐文章于 2024-02-22 16:25:59 发布