我有要在伪拓扑上排序的任务列表。说,我有这样的事情:
enum Task {
case a(Int, Int)
case b(String)
case c(Bool)
}
我要求在所有a
任务之前执行所有b
任务,并在所有b
任务之前执行所有c
任务。此外,同一时间的所有任务都需要保持与输入中相同的顺序。
在计算机科学术语中,我需要的是
Swift标准库中有这样的东西吗?
观察:
Comparable
,一个查看排序的自然协议,要求订单总计。sorted
可以用于部分订单,但不稳定。作为替代方案,拓扑排序算法也可以正常工作,即使它会比我需要的更多。