当前位置:编程学习 > JAVA >>

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]);  
}  
 
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,