Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
RAD-Studio 2009 Pro
|
AW: Rekursion vs. Iteration
9. Jun 2010, 23:29
Es kommt wohl auf die Problemstellung an. Oft ist der iterative Ansatz nicht mit nennenswertem Mehraufwand verbunden, dann zahlt sich eine rekursive Konstruktion nicht aus. Beispielsweise würde ich es als Unfug bezeichnen, in einem "echten" Programm n! rekursiv zu berechnen (das ist nicht als Kritik am obigen Beispiel zu verstehen, weil zur Illustration der Rekursion eignet sich das Beispiel natürlich hervorragend) .
Es gibt aber durchaus Situationen (Quicksort wurde als Beispiel genannt), in denen sich ein Algorithmus rekursiv wesentlich klarer und einfacher darstellen lässt, als durch eine "künstliche" Auflösung der Rekursion zu einem iterativen Verfahren. In so einem Fall würde ich unbedingt den rekursiven Ansatz verwenden, auch um den Preis von ein paar zusätzlichen Bytes Stackverbrauch.
Etwas weiter oben ist das Stichwort "Tail Call Recursion" gefallen. Wenn es sich nur um eine solche handelt (rekursiver Aufruf nur einmal am Ende der rekursiven Prozedur), ist die Iteration wohl vorzuziehen - Die Berechnung von n! ist so ein Beispiel.
Geändert von idefix2 ( 9. Jun 2010 um 23:48 Uhr)
|