框排序算法证明

我为O(n ^ 2)中的盒排序算法写了另一种证明,并通过归纳证明。

有人可以反驳/提供解决方案的另一种证明吗?

问题-

为您提供了n种矩形3-D框的集合,其中第i个框的高度为h(i),宽度w(i)和深度d(i)(所有实数)。所有长度都不同,并且宽度都不同。您想创建一堆尽可能高的盒子,但只能在顶部放置一个盒子如果下部盒子的2-D基座的尺寸均严格大于上部盒子的2-D基座的尺寸,则可以选择另一个盒子。您可以不要旋转盒子,以便任何侧面功能作为其基础。

已知解决方案-

  • 通过增加底面积对框进行排序。
  • 创建一个大小为n的表t,索引为1≤i≤n。以i = n开头 到1,通过对所有j> i的max {h(i),max {h(i)+ t [j]}定义t [i],使得w(j)> w(i)和l(j)> l(i)}
  • 返回以下值:max {t [1],。 。 。 ,t [n]}

我的解决方案-

  • 按数组W的宽度递增和长度递增的顺序对框进行排序 在数组L中。
  • 创建一个nxn矩阵,其中t [i,j] =最高 在L(i)长和W(j)宽的基座上构建的堆栈。
  • 答案将在t [n,n]中,因为那是我们的最大可能基数 区域。
  • 对于矩阵的第一行(这是 可以在最小长度的基础区域上构建的最高堆栈- 意味着只有最小长度的盒子可以在其中)

    定义t [1,j]:

    • 0

    • 具有最小长度的框的高度 =框的宽度

  • 对于矩阵的第一列(这是 可以在最小宽度的基础区域上构建-仅意味着框 最小宽度可以在其中)

    定义t [i,1]:

    • 0
    • 具有最小宽度的框的高度 =具有最小宽度的框的长度
  • 定义t [i,j] =框的高度,框的长度为L(i),宽度为 W(j),如果存在+ max {t [i-1,j],t [i,j-1]}

    • 只有一个具有这些属性的框,因为它们都是唯一的。

谢谢大家!

gandong5050 回答:框排序算法证明

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2364558.html

大家都在问