二分查找使用Arrays传参查找
eg:
package com.lhs;
import java.util.Arrays;
public class Test13 {
public static void main(String[] args) {
int[] num = {23,32,35,45,46,56,59,67};
int index = Arrays.binarySearch(num, 67);
System.out.println(index);
for(int n:num){
System.out.print(n+" ");
}
System.out.println();
System.out.println(Arrays.toString(num));
int[] num2 = {45,76,36,54,86,56,98,34};
Arrays.sort(num2);
System.out.println(Arrays.toString(num2));
int[] num3 = Arrays.copyOf(num2,10);
System.out.println(Arrays.toString(num3));
}
}
Arrays源码(实现该方法的代码块)如下
private static int binarySearch0(short[] a, int fromIndex, int toIndex,
short key) {
int low = fromIndex;
int high = toIndex - 1;
while (low <= high) {
int mid = (low + high) >>> 1;
short midVal = a[mid];
if (midVal < key)
low = mid + 1;
else if (midVal > key)
high = mid - 1;
else
return mid;
}
return -(low + 1);
}