C ++上的分裂算法

时间:2015-01-31 17:17:29

标签: algorithm graph-algorithm genetic-algorithm stl-algorithm evolutionary-algorithm

我有一个包含8个元素的数组:

a[8] = {9, 7, 6, 2, 3, 1, 5, 4}

我想将8个元素分成3组。每组是1个或更多元素的总和。每组的总和最相似。

1 个答案:

答案 0 :(得分:2)

您正在使用k = 3来描述k-partition problem

不幸的是,这个问题被认为是(强)NP-Hard,所以没有已知的有效解决方案(并且一般都不存在)。

您最大的希望是强力搜索:将所有分区创建为3组,并从中选择最佳分区。如果你正在处理8个元素 - 这应该是可能的,但恐怕对于较大的数组来说它会很快变得太慢。