二分查找

题目描述

请实现有重复数字的有序数组的二分查找。
输出在数组中第一个大于等于查找值的位置,如果数组中不存在这样的数,则输出数组长度加一。 
 
2020-10-132020-10-13
import java.util.*;


public class Solution {
    /**
     * 二分查找
     * @param n int整型 数组长度
     * @param v int整型 查找值
     * @param a int整型一维数组 有序数组
     * @return int整型
     */
    public int upper_bound_ (int n, int v, int[] a) {
        // write code here
        int low=0;
        int higth=a.length;
        if(a[a.length-1]<v){
            return higth+1;
        }
        while(low<higth){
            int mid=low+(higth-low)/2;
            if(v>a[mid]){
                low=mid+1;
               
            }else{
               higth=mid; 
            }
        }
        return low+1;
        
    }
}
原文地址:https://www.cnblogs.com/hanxiaomin/p/13809179.html