Abend,
Moin,
...aber einen sorgfältig formulierten iterativen algorithmus halte ich
deshalb für schneller, weil die Anzahl der Iterationen feststeht.
Bei einer Rekursion müss ähnlich einer while-schleife ein Abbruchs-
kriterium für jeden Durchlauf geprüft werden, also nochmal mit neuen
parameter(n) oder schluss. Sowas wirkt sich bei langen rekursionen
schonmal auf die performance aus.
Meinst Du hier mit "Iteration" eine for-Schleife?
Ich dachte, es gilt generell:
Initialisierung;
while(*test*) {
Anweisung;
Inkrement;
}
ist äqivalent zu:
for(Initialisierung; *test*; Inkrement) {
Anweisung;
}
Man muss (besser: sollte) generell bei _jeder_ Schleife für eine Terminierung sorgen, d.h. bei jedem Durchgang wird die Abbruchbedingung überprüft - genauso wie es in einer Rekursion gemacht wird. Ich dachte, das Performanzproblem bei Rekursionen ist vor allem auf die Verwaltung des wachsenden Stacks zurückzuführen.
Oder ich habe Fehler?
Viele Grüße,
Martin