这是动机以及它应该如何表现,但我需要帮助如何实现它。
我有几个(通常)不完整的订单作为订购值给出,例如:
1. A,C,D
2. D,E
3. X,B
4. B,C
5. C,F
6. C,A
,结果顺序应为: A,X,B,C,D,E,F或A,X,B,C,F,D,E或A,X,B,C,D,F,E
它背后的想法是根据首次看到的顺序对结果进行排序。我将尝试在步骤中解释它:
订单A,C,D
D,E - D看到,所以在D之后加E,所以命令A,C,D,E
X,B - 尚未看到任何值,因此我们现在无法确定订单,因此创建第二个临时订单X,B
B,C - C已经见过,所以命令A,B,C,D,E
和2阶可以通过B合并,所以A,X,B,C,D,E
C,F - C见,所以命令A,X,B,C,D,E,F
C,A - 忽略,这两个值都是已定义顺序的一部分(通过第一个不完整的顺序A,C,D)
但是,如果附加的不完整订单F,D或F,E将成为输入的一部分(添加到末尾)怎么办?逐步的心理算法将失败 - F已经放置。
如何实现这个想法,任何想法?