二分探索のlowerboundとupperboundをライブラリ化
二分探索の、lowerbound(以上)、upperbound(より大きい)が手探り状態だったため、ライブラリ化しました。
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に配列と変数を代入した時の出力結果を出しています。