各位大神,有个算法问题求助,给个思路也行啊
假定一个数组排过序后出现类似:[0.111,0.253,0.333,0,339,0.342,0.360,1.233,2.323,2.332,2.340,3.451,4.321]
有两组相近值: 0.333,0,339,0.342
2.323,2.332,2.340
因为数值任意,相近值之间的差不固定,不好设定差值检测,比如第一组有个相近值0.360,差值稍微大了一些就不想要,怎么把这两组相似值从数组中提出来啊
[解决办法]
不知道实际需求是什么样的,是否有去掉的必要?
如果真的要去掉,看你想做到怎么个精确程度。如果实现你可以对数组中的可能出现的最大值和最小值有一个估计,那么就可以设定一个值x,如果后一个数字和前一个数字的值的差<x,那么就删掉后者。
如果实现估计不出最大值和最小值,可以采取百分比法。以 (a[x+1] - a[x]) / a[x+1] 的值为标准,如果小鱼某一个值,那么就删掉a[x+1]。
还可能涉及更复杂的算法,比如对数组内所有的数字计算方差,再计算出两个值之间的最小偏差应该是多少。在去除数据。
还有好多办法啊,呵呵,看你的需要了。