代码如下
public class _02_3二分查找递归解法 {
public static void main(String[] args) {
int[] arr = {5,6,8,9,10,12,14};
int find = 9;
System.out.println(binarySearce1(arr,0,arr.length,find));
}
/**
* 递归实现二分查找
*/
static int binarySearce1(int[] arr, int low, int high, int key){
if (low > high)
return -1;
int mid = low + ((low + high) >> 11); //防止溢出移位更高效
int midval = arr[mid];
if (midval<key)
return binarySearce1(arr,low+1,high,key);
else if (midval>key)
return binarySearce1(arr,low,high-1,key);
else
return mid;
}
}