c# - 将可变大小的项目平衡为大致平衡的集合的算法

标签 c# asp.net algorithm math logic

我正在寻找一种算法,将不同大小的项目列表拆分为“N”个大小相似的组。

具体来说,我正在使用 C# 开发一个 ASP.NET 站点,其中有一个(数据库检索的)字符串列表。弦长短不一。我有一组需要显示字符串的列。我需要一种算法来找到最平衡的集合(项目顺序无关紧要)以使最终列尽可能平衡。

抽象示例:

创建 3 列。

要分发的元素:

 - Item A - height 5
 - Item B - height 3
 - Item C - height 7
 - Item D - height 2
 - Item E - height 3

期望的输出:

Column 1: Item A, Item D
Column 2: Item C
Column 3: Item B, Item E

最佳答案

最快的方法可能就是将每个新项目插入到最小的列表中(其中“最小”是列表中所有项目的大小之和)。

关于c# - 将可变大小的项目平衡为大致平衡的集合的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3575086/

相关文章:

algorithm - AI - 启发式函数要求

algorithm - 优化降低最大流量

c# - WebBrowser 控件中的 Google 字体仅在外部为 "helped"时显示

c# - 奇异值分解——社会网络分析

javascript - 如果正在输入输入文本'空隐藏标签,按下按钮时显示标签

c# - 分解集中式数据库的最具成本效益的方法是什么?

c++ - sobel 过滤算法 (C++)(无库)

c# - 如何将 "sub-classes"放入类(class)

C# 字符串编码和 LocalAlloc

asp.net - 修改请求查询字符串参数以构建新链接,无需借助字符串操作