如何实现递归二进制搜索算法?

时间:2016-03-21 22:07:57

标签: java recursion binary-search

我需要为按升序排序的整数数组实现递归二进制搜索算法(即0 0 0 0 0 0 0 1 2 2 3 3 3 3 5 6 7 7 7 9 )。

我所拥有的数组包含以下数字:

private int srchHelper(int[] array, int first, int last, int x) {
    if (first > last) return - 1;
    int mid = (first + last) / 2;
    if (array[mid] == x) {
        return mid;
    }
    if (array[mid] < x) {
        return srchHelper(array, (mid + 1), last, x);
    }
    else return srchHelper(array, (mid - 1), last, x);
}

但是,我目前的二进制搜索实现只能找到3右边的数字。出于某种原因,它找不到9,7,6和5。

下面是我的代码:

if string[0] = "#":

1 个答案:

答案 0 :(得分:0)

确保您清楚算法的作用,然后仔细查看递归调用。