二分查找Java递归

public class Solution {
    //The entrance of program
    public static void main(String[] args) {
        int[] arr = new int[]{
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
        };
        int i = binarySearch(arr, 0, arr.length, 5);
        System.out.println(i);

    }

    public static int binarySearch(int[] arr, int left, int right, int target) {
        if (left > right) {
            return -1;
        }
        int mid = left + (right - left) / 2;
        if (arr[mid] > target) { // 往左边进行递归
            return binarySearch(arr, left, mid - 1, target);
        } else if (arr[mid] < target) { // 往右边进行递归
            return binarySearch(arr, mid + 1, right, target);
        } else {
            return mid; // 返回查找数值的下标
        }
    }
}
posted @ 2022-05-10 18:39  wjxuriel  阅读(17)  评论(0)    收藏  举报