旋转数组中的最小值

找出递增数组旋转后的最小值?

public int findMin(int[] a,int l,int r){
    if(l == r){
        return a[l];
    }
    int mid = (l+r)/2;
    if(a[mid] > a[r]){
        return findMin(a,mid+1,r);
    }else{
        return findMin(a,l,mid);
    }
}

public int minNumberInRotateArray(int [] array) {
    if(array == null){
        throw new RuntimeException("array is not existed");
    }
    if(array.length == 0){
        return 0;
    }
    return findMin(array,0,array.length-1);
}

//迭代
public int findMin(int [] array) {
    int low = 0 ;
    int high = array.length - 1;
    while(low < high){
        int mid = (low + high) / 2;
        if(array[mid] > array[high]){
            low = mid + 1;
        }else{
            high = mid;
        }
    }
    return array[low];
}