二分查找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; // 返回查找数值的下标
}
}
}
本文来自博客园,作者:wjxuriel,转载请注明原文链接:https://www.cnblogs.com/my-blog-site/p/16254807.html

浙公网安备 33010602011771号