public class Arrays { /** * 使用二分查找,搜索特定的数组,给定的值 * @param a 数组 * @param key 给定的值 * @return 位置 */ public static int binarySearch(int[] a, int key) { return binarySearch(a,0,a.length,key); } /** * 二分查找,返回对应位置 * @param a * @param fromIndex * @param toIndex * @param key * @return */ private static int binarySearch(int[] a, int fromIndex, int toIndex, int key) { int low = fromIndex; int high = toIndex -1; while(low <= high) { // 中间角标 int mid = (high + low) >>> 1; // 中间值 int midVal = a[mid]; if(midVal < key) { low = mid + 1; } else if(midVal > key) { high = mid - 1; } else { return mid; } } return -(low + 1); } }
Arrays中binarySearch
最新推荐文章于 2024-03-23 15:26:13 发布