704. 二分查找

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/

posted @ 2021-10-24 16:05  振袖秋枫问红叶  阅读(22)  评论(0)    收藏  举报