首页 新闻 会员 周边

求一个近似值计算算法?

0
[已关闭问题] 关闭于 2014-01-06 18:56

数据库里有100万个数字,如果连续10个数字出现近似值(这10个数字两两都近似或相等才算近似值),则记录这10数字的ID?

求大神们提供思路。。。。

The Kite Runner的主页 The Kite Runner | 初学一级 | 园豆:10
提问于:2013-11-11 16:32
< >
分享
所有回答(1)
0

我的想法是这样:

1.先将所有数字进行排序,放入数组中,此时得到一个有序的数字数组。

2.将100万个数字分成四个部分 备用,目的是提高计算速度,可以使用4个线程分别去计算

3.两个数字相似,前提条件是允许一个合理的误差值(比如说123.5和124.9 之间的误差为:1.4,我假设每个数字间的误差值为5的话,那么这2个数字是满足的) ,由于四个数组中的数字是有序的,只需要遍历一遍,前后元素进行减法运算,差值在误差值之内的,就记录下来

4.四个子的数组计算完成后,要注意下,要进行一次特殊处理,就是第一个数组的最后一个元素,与第二个数组的第一个元素,差值是否在误差值之内,在的话,就需要处理一下了(因为是分成了四个子数组,不分开的话,就没这么麻烦了,呵呵,但是计算速度就快一些了,牺牲代码复杂度换性能)

5.合并你所有记录下来的符合要求的数字,就是你所要的数字了

袁家小黑球 | 园豆:1045 (小虾三级) | 2013-11-12 09:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册