AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursion vs. Iteration

Ein Thema von MaBuSE · begonnen am 8. Jun 2010 · letzter Beitrag vom 21. Jun 2010
Antwort Antwort
Seite 2 von 12     12 34     Letzte »    
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: Rekursion vs. Iteration

  Alt 8. Jun 2010, 13:43
da ich die Iteration meist als den lesbareren Quellcode ansehe nutze ich nur in Ausnahmefällen eine Rekursion.
Das ist erstaunlich, da bei komplexen Problemen der Rekursive Ansatz meist besser lesbar ist.

z.B. QuickSort
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von Mithrandir
Mithrandir
(CodeLib-Manager)

Registriert seit: 27. Nov 2008
Ort: Delmenhorst
2.379 Beiträge
 
#12

AW: Rekursion vs. Iteration

  Alt 8. Jun 2010, 13:49
besser lesbar ist.
Besser lesbar = Besser verständlich

Ich habe nämlich teilweise erhebliche Probleme bei rekursiven Funktionen zu erkennen, was sie genau macht. Mag aber auch an der fehlenden Übung liegen, weil ich der Rekursion eigentlich immer aus dem Weg gegangen bin.

(In der Hochsprachenprogrammierungs - Prüfung war das dann leider nicht mehr möglich... )
米斯蘭迪爾
"In einer Zeit universellen Betruges wird das Aussprechen der Wahrheit zu einem revolutionären Akt." -- 1984, George Orwell
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#13

AW: Rekursion vs. Iteration

  Alt 8. Jun 2010, 13:59
Es kommt vielleicht auf die Daten an?

Bei der Abarbeitung von Baumstrukturen (z.B. Dateien/Verzeichnisen) empfinge ich rekursiv übersichtlicher/verständlicher.

Bei QuickSort komm ich interativ auch besser zurecht, aber dort wird ja eine lineare Datenstruktur stückchenweise abgearbeitet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Webo
Webo

Registriert seit: 19. Jul 2008
Ort: Werdohl
37 Beiträge
 
RAD-Studio 2010 Pro
 
#14

AW: Rekursion vs. Iteration

  Alt 8. Jun 2010, 14:34
Hallo,
mich würde mal interessieren, ob Ihr in Euren Programmen ehr zur Rekursion oder zur Iteration neigt.
Ich nutze hauptsächlich die Interation - zum Einen weil ich es so gelernt habe und zum Anderen weil es meiner Ansicht nach besser "lesbar" ist.
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#15

AW: Rekursion vs. Iteration

  Alt 8. Jun 2010, 15:15
In deinem einfachen Beispiel würde ich ganz klar die iterative Variante verwenden.
Wenn es aber darum geht zum Beispiel Verzeichnisse und deren Unterverzeichnisse zu durchsuchen wo das aktuelle Verzeichnis für die spätere Weitersuche festgehalten werden muss, verwende ich ganz klar die rekursive Variante.

ich kann für mich also sagen:
- iterativ wenn nichts pro Schritt gemerkt werden muss
- rekursive wenn pro Schritt sich etwas gemerkt werden muss

Ich bevorzuge es also mir keinen eigenen Stack in Form einer Variablen basteln zu müssen sondern greife dann auf den tatsächlichen Stack zurück.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#16

AW: Rekursion vs. Iteration

  Alt 9. Jun 2010, 22: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 22:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#17

AW: Rekursion vs. Iteration

  Alt 10. Jun 2010, 08:23
Guten Morgen,

Ich nutze Rekursion wie Iteration. die Wahl der Technik legt das zu lösende Problem fest. Wenn ich die Wahl habe nehme ich in der Regel die Iteration, oder Baue die Rekursion mittels einer "FILO" nach, zwecks sparen der rekursiven Aufrufe.

Bei sehr einfachen Rekursionen ist es wie idefix2 ja schon schrieb, eh so, dass der Compiler die Rekursion weg optimiert.

Ich Denke im Zweifel sollte man sich immer für die Lesbarkeit entscheiden. Und erst nach gründlicher Prüfung auf einen "optimierteren" Code umsteigen, die Frage die sich hier immer stellt : Rechtfertigt der Nutzen den Mehraufwand. In einem einfachen Programm wie n! sicher nicht. Bei den Fibonacci Zahlen hingegen ist die Iterative Lösung auf jeden Fall vor zu ziehen.
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
idefix2

Registriert seit: 17. Mär 2010
Ort: Wien
1.027 Beiträge
 
RAD-Studio 2009 Pro
 
#18

AW: Rekursion vs. Iteration

  Alt 10. Jun 2010, 09:04
Zitat:
Bei sehr einfachen Rekursionen ist es wie idefix2 ja schon schrieb, eh so, dass der Compiler die Rekursion weg optimiert.
Macht das der Compiler wirklich? Ich habe eigentlich geschrieben, dass ich in so einem Fall die Iteration verwenden würde, das heisst, dass ich quasi die Rekursion selbst manuell wegoptimieren würde.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Rekursion vs. Iteration

  Alt 10. Jun 2010, 09:19
Es ist aber auch eine Geschmacksache.
Markus Kinzler
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.882 Beiträge
 
Delphi 12 Athens
 
#20

AW: Rekursion vs. Iteration

  Alt 10. Jun 2010, 09:27
Und ich hasse Rekursion...vor allem beim debuggen...es ist die Hölle
besonders scheiße finde ich unabsichtliche Rekursion...wo man eine Methode aufruft die über zig andere Methoden wieder sich selbst aufruft...

Lustig zu debuggen.


Es gab mal irgend eine Formel wie man ein Rekursives Problem umstellen kann so das es Iterativ abgebildet wird...habe das irgendwann man an der uni gelernt...aber wieder vergessen
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 12     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz