马老师Web前端架构师
递归
public static int binarySearchForRecursion(int[] array, int target, int start, int end) {
int mid = (start + end) >>> 1;
int midVal = array[mid];
if (start > end) {
return -1;
} else if (target == array[start]) {
return start;
} else if (target == midVal) {
return mid;
} else if (target == array[end]) {
return end;
} else if (array[start] < target && target < midVal) {
return binarySearchForRecursion(array, target, start + 1, mid - 1);
} else {
return binarySearchForRecursion(array, target, mid + 1, end - 1);
}
}
