在C中找到最佳总和的算法

时间:2015-02-22 13:36:40

标签: c algorithm linear-programming

我们已经列出了N个数字。

然后我们创建3个分区A,B和C(这些可以只是整数)。我们希望将数字存储在三个分区中,使得具有最大总和的分区与第二个和第三个总和具有最小差异。所以我们希望以这种方式存储数字,以便所有分区的总和尽可能地彼此接近。我们应该存储数字的方式是线性的。我的意思是每个总和都应该有一个与其他序列相邻的数字。我不知道你是否理解我,如果有人,请正确编辑我的问题。

我将提供一个示例,向您展示如何。

我们说我们有以下数字: 8 5 4 3 2 1 3

最佳解决方案是:

A = 8
B = 5 + 4 = 9
C = 3 + 2 + 1 + 3 = 9

我想创建问题的线性复杂性解决方案,但我不知道如何。我创建了一个O(n ^ 2)解决方案,但我想确定是否有更好的解决方案。也许是logarythmic。我不会上传我的代码只是为了不让你们迷惑。如果你想,那么我会。

我想要的解决方案可以用C语言提供,也可以只用算法提供!

0 个答案:

没有答案