用于将数组划分为具有最小总方差的子集的算法

时间:2018-08-20 04:09:07

标签: algorithm partition

我有一个浮点数数组,我想将该数组分成两个子集,以使它们的总方差最小。

总方差定义如下:

var = (var_1 * n_1 + var_2 * n_2)/(n_1 + n_2)

其中n_1n_2分别是左/右元素的数量,var_1var_2分别是左/右的方差。

我的问题是:是否有任何有效的算法可以找到总方差的全局最小值?该算法应输出两个子集,每个子​​集包含相应组的元素。

此外,假设每个元素都是一个元组(x,y),并且我想找到左和右的全局协方差,而不是方差,它的定义与上述类似。是否有一些用于处理此类分区问题的通用算法?我想这应该更难,因为我能想到的所有算法都需要对数组进行排序,但是这里没有明显的比较器可以对元组进行排序。

0 个答案:

没有答案