Algorithm 列表中紧密重复范围的平均值

Algorithm 列表中紧密重复范围的平均值,algorithm,data-structures,Algorithm,Data Structures,需要在值列表中找到集中值的最大重复范围的平均值 比如说两个浮动列表 case1:{2.43,9.23,10,24,1.0,2.87,7.45,5.1,8.56,2.34,2.65} case2:{9.23,10,8.21,1.0,2.34,6.43,4.65,7.45,5.1,3.56,2.31} 案例1的输出:平均值(1.0,2.34,2.43,2.65,2.87)-因为1.0,2.34,2.43,2.65,2.87的范围很接近(排序元素的值的差异最小),但其余的(9.23,10,24,7

需要在值列表中找到集中值的最大重复范围的平均值

比如说两个浮动列表

case1:{2.43,9.23,10,24,1.0,2.87,7.45,5.1,8.56,2.34,2.65}

case2:{9.23,10,8.21,1.0,2.34,6.43,4.65,7.45,5.1,3.56,2.31}
案例1的输出:平均值(1.0,2.34,2.43,2.65,2.87)-因为1.0,2.34,2.43,2.65,2.87的范围很接近(排序元素的值的差异最小),但其余的(9.23,10,24,7.45,8.56)要么不如先前的范围那么接近,要么不是最大范围(9.23,10,7.45,8.56-4个元素)


case2:0的输出或默认值-如果对列表进行排序并获取连续元素的差异,则差异将非常相似。所以没有这样的集群

假设:

  • 只有一朵云(或最好的)
  • 一个云在R(数据n个元素的最大-最小值)范围内
  • 同时保持此n的最大值(使用此x)
最后,您将拥有所有可能的云,以及元素最多的云。 -然后取这个,计算平均值

有很多方法可以改善这一点(比如当你选择右边时,重复使用之前的云/求和/平均值)


大约是O(n)对于第二部分,你必须增加排序的成本。

你的问题对我来说很不清楚。听起来你在寻找相互靠近的数字簇?如果有多个这样的簇呢?如果有两个彼此靠近的簇,那是一个簇还是两个簇呢?@Tom:如果有多个簇,结果可以是b根据需求推断。我的意思是根据需要。我可以选择最大值或最小值群集。现在让我们集中精力假设给定数据集只有一个群集。仍然非常不清楚。如果你不按照RV的要求发布算法,这可能会关闭。@Ryan:我不确定是否有任何现成的算法可以用于此ki第二,我必须写我自己的。它似乎接近找到一个列表的“模式”,虽然不完全是。编辑了原始帖子。希望现在它是清楚的。