可以使用什么算法将项目组打包到网格中

时间:2018-03-15 16:47:28

标签: algorithm datagrid bin-packing

我有一堆按钮,每个按钮属于某个组,我想将它们打包成一个尽可能少占用空间的网格。

知道这有点像装箱,但有点不同,不是吗?

例如,我有三个组,A,B和C.组A包含17个项目,组B包含7个项目,组C包含8个项目。一个好的输出就是

┌───┬───┬───┬───┬───┰───┬───┬───┐
│ A │ A │ A │ A │ A ┃ B │ B │ B │
├───┼───┼───┼───╆━━━╃───┼───┼───┤
│ A │ A │ A │ A ┃ B │ B │ B │ B │
├───┼───┼───┼───╊━━━┿━━━┿━━━┿━━━┥
│ A │ A │ A │ A ┃ C │ C │ C │ C │
├───┼───┼───┼───╂───┼───┼───┼───┤
│ A │ A │ A │ A ┃ C │ C │ C │ C │
└───┴───┴───┴───┸───┴───┴───┴───┘

它不必是方形的,事实上它更喜欢它更喜欢横向矩形。

以下是另一个例子:A,B,C和D四组.A组有7项,B有3项,C有1项,D有5项。我希望的可能输出是:

┌───┬───┬───┬───┐
│ A │ A │ A │ A │
├───┼───┼───╆━━━┥
│ A │ A │ A ┃ D │
┝━━━┿━━━┿━━━╋━━━┥
│ C │ C │ C ┃ B │
├───┼───╆━━━╃───┤
│ C │ C ┃ B │ B │
└───┴───┸───┴───┘

0 个答案:

没有答案