二分法保证传入的数组是有序的
package 递归;
import java.lang.reflect.Array;
public class 二分法 {
public static void main(String[] args) {
int[] arr = {
1,2,3,4,5,6};
int p = binarySearch(arr, 0, arr.length, 5);
System.out.println(p);
}
private static int binarySearch(int[] arr, int low, int high, int key) {
if (low > high) {
return -1;
}
int mid = low + ((high - low) >> 1);
int midValue = arr[mid];
if (midValue < key) {
return binarySearch(arr, mid, high, key);
} else if (midValue > key) {
return binarySearch(arr, low, mid, key);
} else {
return mid;
}
}
}