条件排序

时间:2012-03-28 15:22:37

标签: algorithm sorting

给出以下类型的N个关系
例如N = 4

A> B

A&以及c

B&以及c

d>一种

以这样的方式排列关系的元素:对于排列'x> y'中的每个连续'xy'

上例的输出为DABC

给定N <20

关系将以二维数组给出

感谢您的时间。

1 个答案:

答案 0 :(得分:8)

如果有这样的解决方案 - 建模到图表的问题实际上是DAG

图表为G=(V,E),其中V= { A,B,C,D}E = { (x,y) | x < y } = { (B,A),(C,A),(C,B),(A,D) }。 [当然,您可以根据输入将其扩展为更大的顶点集。)

运行topological sort,然后按顺序打印顶点。 IFF拓扑排序失败 - 没有解决方案,因为图表有循环 - 所以实体没有可行的排序[反过来是相同的重新开发]。