二分查找(存在重复找到第一个的位置)

二分查找(存在重复找到第一个的位置)

/**
 * 二分查找
 * @param n int整型 数组长度
 * @param v int整型 查找值
 * @param a int整型一维数组 有序数组
 * @return int整型
 */
function upper_bound_( n ,  v ,  a ) {
    // write code here
    function BinarySearch(i,j,arr,k){
        let left = i;
        let right = j;
        var result = arr.length+1
        while(left<right){
            let mid = left+right >> 1
            if(arr[mid]>=k){
                right = mid
                result = mid+1
            }else if(arr[mid]<k){
                left = mid + 1
            }
        }
        return result
    }
    return BinarySearch(0,n-1,a,v)
}
module.exports = {
    upper_bound_ : upper_bound_
};
上一篇:练习2-12 输出华氏-摄氏温度转换表 (15分)


下一篇:2-12 输出华氏-摄氏温度转换表