Java 将已排序的子列表合并到已排序的超列表

Java 将已排序的子列表合并到已排序的超列表,java,algorithm,list,sorting,sortedlist,Java,Algorithm,List,Sorting,Sortedlist,我有一个n个排序列表,每个列表有m个元素字符串。这些元素来自一个我不知道的顺序不同的列表。我所知道的是,所有子列表都维护元素的全局顺序。这些列表不是不相交的。列表的并集是原始列表的子集 现在,我正在努力寻找一种算法,能够有效地将它们重新组合成一个列表,并具有最大的排序精度 有没有解决这个问题的办法 我正在使用Java,下面是一些示例代码: List<List<String>> elements = new ArrayList<>(); elements.ad

我有一个n个排序列表,每个列表有m个元素字符串。这些元素来自一个我不知道的顺序不同的列表。我所知道的是,所有子列表都维护元素的全局顺序。这些列表不是不相交的。列表的并集是原始列表的子集

现在,我正在努力寻找一种算法,能够有效地将它们重新组合成一个列表,并具有最大的排序精度

有没有解决这个问题的办法

我正在使用Java,下面是一些示例代码:

List<List<String>> elements = new ArrayList<>();

elements.add(Lists.newArrayList("A","D","F"));
elements.add(Lists.newArrayList("B","D","E"));
elements.add(Lists.newArrayList("A","B","G"));
elements.add(Lists.newArrayList("C","D","H"));

// the required method
List<List<String>> sorted = sortElements(elements);

/* expeced output:
 * [["A"],["B"],["C"],["D"],["G","F","E","H"]]
 */
你正在寻找的是什么

初始列表表示有向图弧A->D、D->F等

附言。 在俄罗斯文献Demoucron算法中称为一种特殊的拓扑排序,以明确地按级别划分节点,但我未能找到合适的英文描述,找到了平面图绘图文章的链接

其工作实例:

你正在寻找的是什么

初始列表表示有向图弧A->D、D->F等

附言。 在俄罗斯文献Demoucron算法中称为一种特殊的拓扑排序,以明确地按级别划分节点,但我未能找到合适的英文描述,找到了平面图绘图文章的链接

其工作实例: