【发布时间】:2019-06-12 23:45:37
【问题描述】:
我有一个对象
class Junction {
private String name;
private String previous;
private String next;
}
现在这些联结具有以下格式
Junction[name="T1H", previous="T0F", next="T345"]
Junction[name="K109", previous="TRH", next="JHD"]
Junction[name="LM89", previous="T1H", next="D679"]
Junction[name="TRH", previous="LM89", next="T345"]
上面的顺序如下:
T1H->LM89->TRH->K109
但是如果我有一个无序列表,我该如何排序呢?什么是java中最好的算法来做到这一点。快速排序不起作用,因为枢轴和更高和更低的概念并不真正适用。您无法计算出某些东西是否更高,因为连接点都是链接的。
冒泡排序似乎是合乎逻辑的。
有什么想法吗?
【问题讨论】:
-
这是一个拓扑排序问题。
-
交汇点总是会产生这样的“链”,还是有两个交汇点具有相同的“上一个”或“下一个”?相反,“前一个”必须是直接前任,还是只是列表中较早的某个位置?
-
它始终是一个链条。它永远不会形成一个环。