根据需求对算法进行排序

时间:2014-06-07 05:32:45

标签: algorithm sorting

我正在寻找一种可以根据需求进行排序的算法。例如,如果我有3个节点N1,N2和N3 我要求N2必须在N3之后,并且N3要求它必须在N1之后。所以正确的排序将是N1,N3,N2。

1 个答案:

答案 0 :(得分:5)

根据您的要求形成图表。您的项目是节点,如果A必须在B之前,则存在从A到B的有向边。反复地,删除没有传入边缘的节点并删除其所有传出边缘。执行此操作直到删除所有节点。您将按所需顺序删除它们,满足要求。

有关实施的详细信息,请参阅此处:Topological sorting