5 Stimmen

Algorithmus zur Sortierung von lose vergleichbaren Daten?

Nehmen wir an, ich habe eine unsortierte Liste mit vier Objekten: [B, C, A, D] .

Alle vier Objekte sind vom gleichen Typ und:

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

Unter != Ich meine damit, dass sie weder weniger als die anderen Objekte, noch gleich oder größer als diese sind.

Ich muss die Liste so "sortieren", dass A wird immer Vorrang haben vor B y C wird immer Vorrang haben vor D . Über diese beiden Anforderungen hinaus habe ich keine Anforderungen an die Reihenfolge der Liste; daher sollte die Sortierfunktion bei der zuvor beschriebenen Liste entweder [A, B, C, D] o [C, D, A, B] .

Was die Ursache dieses Problems betrifft, so versuche ich, ein Array von java.lang.Class Objekte auf der Grundlage ihrer Beziehungen zueinander. Zum Beispiel, wenn A ist die Superklasse/Superschnittstelle von B alors A ist weniger als B . Wenn A erweitert/implementiert B dann ist A größer-als B . Wenn A でございます B dann natürlich A イコール B . Ansonsten, A ist überhaupt nicht vergleichbar mit B.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X