是否存在适用于标准库中的部分订单的稳定排序?

时间:2017-09-20 14:52:14

标签: swift sorting stable-sort partial-ordering

我有要在伪拓扑上排序的任务列表。说,我有这样的事情:

enum Task {
    case a(Int, Int)
    case b(String)
    case c(Bool)
}

我要求在所有a任务之前执行所有b任务,并在所有b任务之前执行所有c任务。此外,同一时间的所有任务都需要保持与输入中相同的顺序。

在计算机科学术语中,我需要的是

  • 稳定的排序算法和
  • 一种为其提供部分订单的方式。

Swift标准库中有这样的东西吗?

观察:

  • Comparable,一个查看排序的自然协议,要求订单总计。
  • sorted可以用于部分订单,但不稳定。

作为替代方案,拓扑排序算法也可以正常工作,即使它会比我需要的更多。

0 个答案:

没有答案