定期分类n种产品

时间:2018-08-28 16:32:40

标签: algorithm sorting

我们最近遇到了这个问题。

我们有n种不同的产品类型,其中每种产品类型可能具有任意数量(> = 0)的产品。我们要对列表中的所有产品(所有类型的所有产品)进行“排序”,但是,某些产品类型将以周期性的顺序插入列表中。

我想用一个例子来解释: 我们有3种不同的产品类型(ProdA,ProdB,ProdC),3个单位的ProdA,4个单位的ProdB和2个单位的ProdC。 ProdC将以2的间隔插入列表中。

一个订购可能是:

  • ProdA1
  • ProdA2
  • ProdC1
  • ProdA3
  • ProdB1
  • ProdC2
  • ProdB2
  • ProdB3
  • ProdC1
  • ProdB4

看看,因为ProdC是周期性的并且只有2个单位,所以当我们用完ProdC单位时会重复这些单位。

如果删除了一个单位的ProdA和一个单位的ProdB,我们希望列表看起来像这样:

  • ProdA1
  • ProdA2
  • ProdC1
  • ProdB1
  • ProdB2
  • ProdC2
  • ProdB3

我们不想“重新计算”整个列表。

我的问题是:是否有一种通用的算法来执行此操作,其中包括动态“重新排序”?

谢谢!

1 个答案:

答案 0 :(得分:1)

不。修改列表后,非周期性ProdA,ProdB的位置就会更改。因此,如果列表是数组,则其内存已更改。如果列表是链接列表,则节点指针会更改。

我建议使用两个列表:一个带有ProdA和ProdB,另一个带有ProdC。您可以在需要时构建合并列表。