Hallo.
Ich habe Daten in einem mehrdimensionalen Array vorliegen: EigeneID, ElternID, Dateninhalt.
Die einzelnen Elemente haben eine einzigartige, zufällig erzeugte ID und verweisen auf ihr Vorfahrelement.
Die Wurzelelemente haben im Verweis ne 0 stehen.
Jetzt wird eine URL mit einer Nummer als Übergabeparameter aufgerufen, diese Nummer verweist auf einen bestimmten Datensatz.
Ich muss dann den kompletten "Baum" aufbauen. Ich muss die Nachfahren des Elementes finden. Die Vorfahren.
Und vom Wurzelelement aus wieder runter, die anderen Äste des Baumes.
Ich hab zwar schon abgefangen, aber es ist sehr ineffektiv.
Ich brauche, um den Baum aufzubauen, n hoch 2 plus x Schleifendurchläufe!
n ist die Zahl der Datenelemente, x ist die Zahl weiterer Durchläufe (z.B. Zähldurchlauf)
Bei 200 Elementen brauche ich mindestens 40.000 Durchläufe!
Und ich habe mindestens 200 Elemente.
Warum brauche ich so viele Durchläufe? Nunja, ich gehe erst mal hin und springe auf die Wurzel, da ie die ID 0 hat und somit bekannt ist. Dann suche ich das erste Kind mit einem Durchlauf. Datenverarbeitung. Dann nehme ich die ID vom Kind als aktuelle ID, und suche das Erste Kind vom Kind usw. Ist der Pfad zu Ende, gehe ich wieder eine Ebene hoch, und suche da den nächsten.
Auf diesem Weg baue ich den ganzen Tree auf.
Bis das ganze steht, dauert. da bei jedem Element noch Fallunterscheidungen dazu kommen.
Wie programmiert man sowas richtg und besser?
Ich habe Daten in einem mehrdimensionalen Array vorliegen: EigeneID, ElternID, Dateninhalt.
Die einzelnen Elemente haben eine einzigartige, zufällig erzeugte ID und verweisen auf ihr Vorfahrelement.
Die Wurzelelemente haben im Verweis ne 0 stehen.
Jetzt wird eine URL mit einer Nummer als Übergabeparameter aufgerufen, diese Nummer verweist auf einen bestimmten Datensatz.
Ich muss dann den kompletten "Baum" aufbauen. Ich muss die Nachfahren des Elementes finden. Die Vorfahren.
Und vom Wurzelelement aus wieder runter, die anderen Äste des Baumes.
Ich hab zwar schon abgefangen, aber es ist sehr ineffektiv.
Ich brauche, um den Baum aufzubauen, n hoch 2 plus x Schleifendurchläufe!
n ist die Zahl der Datenelemente, x ist die Zahl weiterer Durchläufe (z.B. Zähldurchlauf)
Bei 200 Elementen brauche ich mindestens 40.000 Durchläufe!
Und ich habe mindestens 200 Elemente.
Warum brauche ich so viele Durchläufe? Nunja, ich gehe erst mal hin und springe auf die Wurzel, da ie die ID 0 hat und somit bekannt ist. Dann suche ich das erste Kind mit einem Durchlauf. Datenverarbeitung. Dann nehme ich die ID vom Kind als aktuelle ID, und suche das Erste Kind vom Kind usw. Ist der Pfad zu Ende, gehe ich wieder eine Ebene hoch, und suche da den nächsten.
Auf diesem Weg baue ich den ganzen Tree auf.
Bis das ganze steht, dauert. da bei jedem Element noch Fallunterscheidungen dazu kommen.
Wie programmiert man sowas richtg und besser?
Kommentar