给定一组整数 S:
如何将集合分成 k 个部分,以使每个部分的总和最小?也请给出一个C
实现。
例子:
S = {1, 2, 3, 4, 5, 6} and k = 3
分区
S1 = {1, 6}
S2 = {2, 5}
S3 = {3, 4}
具有每个分区之和最小的性质。
给定一组整数 S:
如何将集合分成 k 个部分,以使每个部分的总和最小?也请给出一个C
实现。
例子:
S = {1, 2, 3, 4, 5, 6} and k = 3
分区
S1 = {1, 6}
S2 = {2, 5}
S3 = {3, 4}
具有每个分区之和最小的性质。
这个页面很好地描述了这个问题,甚至提供了算法的伪代码:
http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM
确定给定列表中的最小值,最大值并形成一对。重复直到列表用完。
直觉上它似乎可以确保达到预期的结果,但不确定!