魔术索引II

来源:互联网 发布:支持php的web服务器 编辑:程序博客网 时间:2024/05/01 09:19
    使用二分,时间复杂度最坏情况是O(N)。平均的时间复杂度未知,不过我感觉是O(n),如果你想到如何算它的时间复杂度,可以在下面评论。
public boolean findMagicIndex(int[] A, int n) {        return findMagicIndexHelp(A, 0, n-1);    }    private boolean findMagicIndexHelp(int[] A, int left, int right) {        if(left == right){            if(left == A[left]){                return true;            } else {                return false;            }        }        int mid = 0;        if (left < right) {            mid = (left + right) / 2;            if(mid == A[mid]){                return true;            } else {                return findMagicIndexHelp(A, left,mid -1) || findMagicIndexHelp(A, mid+ 1, right);            }        }        return false;    }
1 0