读书人

java减半查找法 查找数组中与目标数最

发布时间: 2013-03-25 15:43:04 作者: rapoo

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]);}


读书人网 >编程

热点推荐