黑马程序员技术交流社区

标题: 涉及数组的一个算法题 [打印本页]

作者: 燃灯街    时间: 2013-6-12 23:06
标题: 涉及数组的一个算法题
本帖最后由 燃灯街 于 2013-6-13 16:33 编辑

给定一个已经排好序的double类型的数组,以及另一个double类型的数值,写一个算法找到该数组中与此数值最接近的元素。(前提是:不要用二分查找)


作者: 苑永志    时间: 2013-6-13 10:19
我研究了一下,二分查找算法的优化往往是增大查找步骤的跨度,从而降低算法的时间复杂度,这样很可能直接跳过了最接近查找值元素的位置,比如插值查找算法,斐波那契查找算法都是如此;至于构造数组(有序表)以外的数据结构进行查找操作,反而得不偿失了。而最简单的顺序查找算法倒是满足楼主要求。个人见解,供参考。
作者: Spole_168    时间: 2013-6-13 13:14
public class Test{
public static void main(String[] a){
double[] arr = {1,2,3,4.5,5,6,8};
double find = 4.3,result = 0;
double flag = Math.abs(arr[0]-find);
for(int i =0;i<arr.length;i++){
double d = Math.abs(arr[i]-find);
if(d<=flag){
flag = d;
result = arr[i];
}

}
System.out.println("最接近"+find+"的数组中数值是"+result);
}
}
作者: 曹睿翔    时间: 2013-6-13 15:50
问题已经解决的,请及时更改分类为已解决,方便大家查阅,没有的继续追问
关于提问技巧请看:http://bbs.itheima.com/thread-53229-1-1.html




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2