java减半查找法 查找数组中与目标数最接近的数
java折半查找法 查找数组中与目标数最接近的数
查找数组中最接近目标数的数
/** * 查找最接近目标值的数,并返回 * @param array * @param targetNum * @return */ public static Integer binarysearchKey(Object[] array, int targetNum) { Arrays.sort(array); int targetindex = 0; int left = 0, right = 0; for (right = array.length - 1; left != right;) { int midIndex = (right + left) / 2; int mid = (right - left); int midValue = (Integer) array[midIndex]; if (targetNum == midValue) { return midIndex; } if (targetNum > midValue) { left = midIndex; } else { right = midIndex; } if (mid <= 2) { break; } } System.out.println("和要查找的数:" + targetNum + "最接近的数:" + array[targetindex]); return (Integer) (((Integer) array[right] - (Integer) array[left]) / 2 > targetNum ? array[right] : array[left]); }