二分探索のlowerboundとupperboundをライブラリ化

二分探索の、lowerbound(以上)、upperbound(より大きい)が手探り状態だったため、ライブラリ化しました。

github.com

public class BinarySearch {

    public static int lowerbound(int[] arr, int value){
        int left = 0;
        int right = arr.length;
        while (left<right){
            int mid = (left+right)/2;
            if (arr[mid]<value){
                left = mid+1;
            }else {
                right = mid;
            }
        }
        return left;
    }

    public static int upperbound(int[] arr, int value){
        int left = 0;
        int right = arr.length;
        while (left<right){
            int mid = (left+right)/2;
            if (arr[mid]<=value){
                left = mid+1;
            }else {
                right = mid;
            }
        }
        return left;
    }
}

testBinarySearch.javaに配列と変数を代入した時の出力結果を出しています。