Hallo,
ich habe einen rekursiven Algorithmus in Java umgesetzt,
d.h. eine Methode erzeugt einige neue Objekte und ruft sich
dann viermal selbst wieder auf. Ich habe die Rekursionstiefe
auf 3 gesetzt, d.h. man hat im letzten Zweig des Quad-Baums
lediglich 4^3=64 Methodenaufrufe.
Das Programm fängt rasend schnell an, wird aber mit der
Zeit immer langsamer und langsamer. Ist das ein Speicherproblem
in Java? Ich habe keine Ahnung, wie Java eine derartige Rekursion
intern handhabt. Wie ist dieses Problem lösbar? Ich benötige
die Rekursion um die Laufzeit des Algorithmus von O(N^2) auf
O(logN) herunterzuskalieren. Sollte ich wieder zu C++/Fortran
zurückkehren?
Viele Grüße, vielen Dank,
Andreas
ich habe einen rekursiven Algorithmus in Java umgesetzt,
d.h. eine Methode erzeugt einige neue Objekte und ruft sich
dann viermal selbst wieder auf. Ich habe die Rekursionstiefe
auf 3 gesetzt, d.h. man hat im letzten Zweig des Quad-Baums
lediglich 4^3=64 Methodenaufrufe.
Das Programm fängt rasend schnell an, wird aber mit der
Zeit immer langsamer und langsamer. Ist das ein Speicherproblem
in Java? Ich habe keine Ahnung, wie Java eine derartige Rekursion
intern handhabt. Wie ist dieses Problem lösbar? Ich benötige
die Rekursion um die Laufzeit des Algorithmus von O(N^2) auf
O(logN) herunterzuskalieren. Sollte ich wieder zu C++/Fortran
zurückkehren?
Viele Grüße, vielen Dank,
Andreas