据我了解,这与分区问题有关。
但是我想问一个稍微不同的问题,我不在乎总和,而是在乎平均值。在这种情况下,它需要同时优化 2 个约束(总和和项目数)。这似乎是一个更难的问题,我在网上看不到任何解决方案。
是否有针对此变体的任何解决方案?或者它与分区问题有什么关系?
例子:
input X = [1,1,1,1,1,6]
output based on sum: A = [1,1,1,1,1], B=[6]
output based on average: A = [1], B=[1,1,1,1,6]
Run Code Online (Sandbox Code Playgroud) 我刚看到有关排序的javascript代码setTimeout,如图所示
var list = [2, 5, 10, 4, 8, 32];
var result = [];
list.forEach( n => setTimeout(() => result.push(n), n));
Run Code Online (Sandbox Code Playgroud)
有趣的是因为在js中setTimeout是异步的,所以如果你等待足够的时间,result就会对数组进行排序.确定性仅取决于数据的值而不取决于输入的大小,所以我不知道如何确定这种方法的Big-O(时间复杂度).