int bin_search(int *a, int n, int x){  //a[0]~a[n-1]是单调递增的
    int left = 0, right = n;              //注意:不是 n-1
    while (left < right) {
        int mid = left + (right-left)/2; 
                               //int mid = (left + right) >> 1;  
        if (a[mid] >= x)  right = mid;
        else    left = mid + 1;
    }                      //终止于left = right
   return left;       //特殊情况:a[n-1] < x时,返回n
}

0 条评论

目前还没有评论...