黑马程序员技术交流社区
标题:
涉及数组的一个算法题
[打印本页]
作者:
燃灯街
时间:
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