随机排序(通过满足某些条件)

时间:2014-06-13 18:57:08

标签: java algorithm sorting arraylist

我正在寻找可以进行随机排序的算法,但要满足某些条件。

例如:

  

列表:{1,2,3,4,5,6,7,8,9}

     

条件:{(4 before 8), (6 before 1), (3 before 2)}

     

因此,在列表编号4的随机排序中必须在编号8之前   等......

我需要用Java(带ArrayList),但我找不到算法来做到这一点! 如果有人知道做这个事情的算法,请在回答中写出算法的名称,或者如果你有一个线索如何解决它,一点解释会很好。

1 个答案:

答案 0 :(得分:7)

你真的想要topological sort。条件实际上是图中的边,数字是节点。拓扑排序将生成一个保留所有约束的订单。