标签: java algorithm sorting arraylist
我正在寻找可以进行随机排序的算法,但要满足某些条件。
例如:
列表:{1,2,3,4,5,6,7,8,9} 条件:{(4 before 8), (6 before 1), (3 before 2)} 因此,在列表编号4的随机排序中必须在编号8之前 等......
列表:{1,2,3,4,5,6,7,8,9}
{1,2,3,4,5,6,7,8,9}
条件:{(4 before 8), (6 before 1), (3 before 2)}
{(4 before 8), (6 before 1), (3 before 2)}
因此,在列表编号4的随机排序中必须在编号8之前 等......
我需要用Java(带ArrayList),但我找不到算法来做到这一点! 如果有人知道做这个事情的算法,请在回答中写出算法的名称,或者如果你有一个线索如何解决它,一点解释会很好。
答案 0 :(得分:7)
你真的想要topological sort。条件实际上是图中的边,数字是节点。拓扑排序将生成一个保留所有约束的订单。