我正在寻找一种排序算法来帮助我完成工作。我的目标如下:收到此类意见后:
5 4
1 2
2 3
3 4
4 5
第一行告诉我有多少ID,第二行告诉我有多少连接。以下几行告诉我连接,并告诉我第一个ID出现在第二个之前,例如:1在2之前,2在3之前,依此类推。如果发生不可能的情况:
3 2
1 2
2 3
3 1
或
2 2
1 2
2 1
我希望能够发送错误消息。
是否有算法已经执行此操作?或者你能给我一些如何开始工作的指导方针吗?我不希望你的代码只是一些帮助/提示/建议。提前感谢您的时间。
答案 0 :(得分:2)
根据您的描述,我认为您可能正在寻找拓扑排序。
这是基于这样的假设:当一个连接表明A出现在B之前但是有一些另一个连接暗示B出现在A之前时,会出现“不可能的情况”。
拓扑排序的链接: Topological Sorting