假设您有一个矩形表面和一些圆形/矩形对象(不同大小)。 我想编写一个算法来整理表面上的那些对象。 我必须在同一个表面上放置一个最大的物体。 我想我必须把最大的物体放在最小和最小的物体上。 你知道是否有一个特定的算法来优化这个? 这是一种俄罗斯方块的分辨率,但我可以选择件的顺序。
由于
答案 0 :(得分:1)
由于您希望最大化要放置的对象数量,因此在大多数情况下,贪婪算法可能会运行良好:
Sort boxes according to length(ascending order).
Start from the smallest box:
for every box :
try to place it in a already occupied row
if not possible place it in a new row.
if not possible to place - break; //since anything bigger than would not fit.
如果您正在考虑身高,这称为Packing Problem。 您可以查看相关的算法here
答案 1 :(得分:-1)
编辑: 它实际上是背包问题的子类型:Bin Packing Problem