1. 递归实现二分查找

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class BinTree {


public static int binaryFind(int[] arr, int target, int i, int j){
if (i > j){
return -1;
}
int m = (i + j) / 2 ;
if(arr[m] < target){
return binaryFind(arr, target, m + 1 , j);
}else if(arr[m] > target) {
return binaryFind(arr, target, i, m - 1);
}else{
return m;
}
}

public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
System.out.println(binaryFind(arr, 4, 0, arr.length - 1));
}


}