public class Algorithm {
public static void main(String[] args) {
Integer[] arr = {1,2,3,4,5,6,7};
System.out.println(new BinarySearch().search(arr, 4));
}
}
class BinarySearch {
public static<E extends Comparable<E>> int search(E[] arr, E target){
int res = search(arr, 0, arr.length - 1, target);
return res;
}
public static<E extends Comparable<E>> int search(E[] arr, int left, int right, E target){
if (left > right){
return -1;
}
int mid = left + (right - left) / 2;
if (arr[mid].compareTo(target) == 0){
return mid;
}
else if (arr[mid].compareTo(target) < 0){
return search(arr, mid + 1, right, target);
}
else {
return search(arr, left, mid - 1, target);
}
}
}
https://leetcode-cn.com/problems/binary-search/