如何订购此清单?

时间:2011-09-15 11:25:36

标签: algorithm sorting

我有一份申请表。我需要以特定的方式订购它们并按顺序安装。

需要考虑的事项:

某些应用程序需要另一个应用程序。

某些应用程序在安装下一个应用程序之前需要重新启动,我们希望这些应用程序保持在列表的底部,但是其中一些应用程序可能需要一个不需要重新启动的应用程序,因此,某些应用程序可能会发生这种情况。没有任何要求重启的要求,在需要重启的应用程序之后。

一个例子:

P1 (Reboot)
P2 (Needs P3)
P3
P4 (Needs P1)
P5 (Reboot and needs P3)
P6 (Reboot)
P7

所以,如果我们按顺序拥有应用程序:

P1 - P2 - P3 - P4 - P5 - P6 - P7

正确的顺序是(例如):

P3 - P7 - P2 - P1 - P4 - P5 - P6

如果一个非重新启动的应用程序需要一个需要重新启动的应用程序(如P4),如果它们在列表中位于其他重启应用程序(P5 - P6)之上会更好

1 个答案:

答案 0 :(得分:3)

您需要topological sorting算法。