算法排序松散的可比数据?

问题描述 投票:5回答:1

比方说,我有四个对象的无序列表:[B, C, A, D]

所有四个对象都是同一类型的,并且:

  (A > B),
  (C > D),
  (A != C or D)
  (B != C or D)
  (C != A or B)
  (D != A or B).

通过!=我的意思是,他们既不是小于,等于到或大于其他对象。

我需要“排序”名单,使得A总会B来之前,和C总会D面前。除了这两个要求,我对列表的顺序没有特殊的需求;因此,鉴于前面描述的列表,排序函数返回值应该是[A, B, C, D][C, D, A, B]

至于这个问题的原因,我想排序基于它们之间的相互关系java.lang.Class对象的数组。例如,如果是AB超类/超接口,则A是低于B。如果A扩展/实现B,然后是A B,大于。如果AB,那么显然A等于B。否则,A是完全不具有可比性toB。

java algorithm sorting language-agnostic
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.