Was ist der bessere Ansatz zu finden, wenn eine gegebene Menge eine perfekte Teilmenge einer Menge ist - Wenn angegeben Teilmenge nicht sortiert ist?

StackOverflow https://stackoverflow.com/questions/2899317

  •  04-10-2019
  •  | 
  •  

Frage

Was ist der beste Ansatz zu finden, wenn ein bestimmte Satz (unsortiert) eine perfekte Teilmenge einer Hauptgruppe ist. Ich habe einige Validierung in meinem Programm zu tun, wo ich die Clients mit der registrierten internen Fähigkeit Set-Anfrage-Set zu vergleichen bekam.

Ich dachte, tun sortiert nach internen Fähigkeit Satz mit (wird nicht einmal registriert ändern) und tun Binary Suche für jedes Element in der Anfrage-Set des Kunden. Ist es das Beste, was ich bekommen konnte? Ich vermutete, dass es vielleicht besser Ansatz.

Jede Idee?

Grüße,

Microkernel

War es hilfreich?

Lösung

Unter der Annahme, dass die Sprache Ihrer Wahl keine Set-Klasse mit „in einem Satz enthält“ Methode bereits nicht implementiert wie Java funktioniert mit HashSet ...

Ein guter Ansatz ist Hashmaps (aka Hashes aka assoziative Arrays)

zu verwenden,

Wenn Ihre Obermenge nicht zu groß ist, erzeugt eine hashmap Abbilden jedes Objekts in der größeren Gruppe zu einem wahren Wert.

Dann Schleife über jedes Element in einer Untergruppe. Versuchen Sie das Element in der generierten hashmap zu finden. wenn Sie nicht, Ihr kleiner Satz ist kein peoper Teilmenge. Wenn Sie die Schleife ohne Fehler beenden, ist es.

Andere Tipps

es hängt davon ab, wie viele Elemente in Ihren Sets sind. für größere Mengen, in der Regel eine Hashset für die mainset Umdrehungen heraus beste Leistung verwenden.

Da Sie die interne Fähigkeit wissen, setzen Sie eine perfekte Hash-Funktion verwenden können das testen Elemente der Client-Anforderung gesetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top