Guten Morgen Konrad, Am 04.05.2005 um 07:41 schrieb Konrad Rosenbaum:
On Tuesday 03 May 2005 23:15, Uwe Beger wrote:
Zum Glück sind meine ID's "nur" wirklich einfache Strings und keine SMILES-Daten. Die Strukturgleichheit ermittle ich mit einer proprietären Chemiedatenbank. Die Listen stellen also schon das Ergebnis dar. x=z, x=y sind bereits bekannt und dann, nach Import weiterer x-tausend Strukturen in die große Chemiedatenbank, x=a. a wurde neu importiert und hat sich als Duplikat zu x und damit logischerweise auch zu y und z erwiesen. x, y, z und a verkörpern keine Summenformeln, sondern unique ID's.
Aha. Dann würde ich sogar noch anders herangehen:
Hol Dir aus der DB die Datensätze und die x=y Beziehungen, dann bau solche Listen auf:
b c d x y z a
Die Zeilen entstehen, indem Du durch die Liste durchgehst und suchst, ob das linke oder rechte Element schon vorhanden ist, dann fügst Du das Fehlende einfach hinzu.
Dann hast Du in jeder Zeile nur identische Formeln stehen und kannst beim Export einfach aus jeder Zeile die erste nehmen.
Der Füll- und Such-algorithmus ist bei dieser Vorgehensweise suboptimal, dafür geht die eigentliche Zieloperation (Export) schön schnell. Wenn Du optimieren willst baust Du Dir noch eine Hashliste als Index in der Du x/y als Key und die Zeilennummer in der Primärtabelle als Value nimmst.
Konrad
Herzlichen Dank. Kurz vor dem Einschlafen hatte mich ein sehr ähnlicher Gedankenblitz erreicht ;-) Wenn das Stück Software steht werde ich mich noch einmal über die Performance äußern.
Schöne Feiertage, Uwe.