public class BinarySearch {
private int[] array;
/**
* 递归实现二分查找
* @param target
* @return
*/
public int searchRecursion(int target) {
if (array != null) {
return searchRecursion(target, 0, array.length - 1);
}
return -1;
}
private int searchRecursion(int target, int start, int end) {
if (start > end) {
return -1;
}
int mid = start + (end - start) / 2;
if (array[mid] == target) {
return mid;
} else if (target < array[mid]) {
return searchRecursion(target, start, mid - 1);
} else if (target > array[mid]) {
return searchRecursion(target, mid + 1, end);
}
}
}
参考https://blog.csdn.net/Summer_night_star/article/details/123012386?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170504317716800182164327%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=170504317716800182164327&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-21-123012386-null-null.142^v99^pc_search_result_base1&utm_term=%E4%BA%8C%E5%88%86&spm=1018.2226.3001.4187