二分查找

传入 数组A, 以及要查找的范围[lo, hi)

int binSearch(int A[], int goal, int lo, int hi){
    while (lo < hi){
        int mi = (lo + hi) >> 1;
        (goal < A[mi]) ? hi = mi : lo = mi + 1;
    }  
    return --lo;    
}

返回的是在[lo, hi) 范围内,不大于goal的元素的最大index

posted @ 2015-03-24 04:21  zmiao  阅读(114)  评论(0编辑  收藏  举报