Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Baumstruktur in Array strukturiert sortieren


awzvm - Di 28.07.09 11:50
Titel: Baumstruktur in Array strukturiert sortieren
Hallo Zusammen,

ich benötige einen Denkanstoß, wer kann mir helfen?

Ich habe einen Baum mit 10 Ebenen (aus csv-Datei), welcher in einem Array mit Zeile und Spalte abgebildet ist.

Nun möchte ich gern, beginnend von der letzten (10.) Ebene alle Einträge sortieren, ohne dass die Zugehörigkeit zum Knotenpunkt verloren geht.
Dann möchte ich die Knotenpunkte sortieren, ohne dass deren Knotenzuordung und deren "Kinder" verloren gehen. Und das Ganze bis zur ersten Ebene.

Hat jemand eine Idee oder Codebeispiele wie das in einem 2 Dimensionalen Array (Spalte,Zeile) realisierbar ist?

Grüße in die Welt
awzvm


martin300 - Di 28.07.09 12:41

Hallo,
zuerst würde ich mir überlegen ob diese Sortierung sinnvoll ist und mit den Daten in Excel ausprobieren. Der Aufbau einer CSV Datei ist hier beschrieben http://de.wikipedia.org/wiki/CSV_(Dateiformat). In Excel wäre es auch ein 2 - Dim Array...


awzvm - Di 28.07.09 15:02

Ich habe das Problem jetzt so gelöst, wie oben beschrieben.

Zuerst braucht man eine Funktion, welche einen kompletten Knoten nach oben verschieben kann.

Dann geht man über den Baum von Anfang bis Ende und geht dabei von niedigster bis höchster Ebene durch und sucht sich der reihe nach die Knoten. Von diesen Knoten aus, wird der Sortiersector bestimmt (Anfang und Ende) und jeder Eintrag darin kontrolliert. Es wird geschaut, ob aktueller Eintrag kleiner als vorheriger Eintrag. Wenn ja, wird aktueller Eintrag (Knoten) um eins nach oben geschoben. Danach wird der Sortiersector erneut durchsucht.

Etwas kompliziert, aber es läuft. Und die Geschwindigkeit ist auch ok. Vor allem, wenn der Baum schon eine Grundsortierung bestitzt, ist diese Lösung ganz gut.

awzvm