14 Unterschied zwischen Rekursion und Iteration mit Beispiel

Was ist Rekursion?

Rekursion ist eine Methode zur Lösung eines Problems, bei der die Lösung von Lösungen für kleinere Instanzen desselben Problems abhängt. Der Ansatz kann auf viele Arten von Problemen angewendet werden. Rekursion wird in einer Vielzahl von Disziplinen verwendet, von der Linguistik bis zur Logik. Die häufigste Anwendung der Rekursion findet sich in der Mathematik und Informatik, wo eine definierte Funktion innerhalb ihrer eigenen Definition angewendet wird.

Was ist Iteration?

Iteration ist die Wiederholung eines Prozesses, um eine Folge von Ergebnissen zu generieren. Die Sequenz nähert sich einem Endpunkt oder Endwert. Jede Wiederholung des Prozesses ist eine einzelne Iteration und das Ergebnis jeder Iteration ist dann der Ausgangspunkt der nächsten Iteration.

Lesen Sie auch: Unterschied zwischen statischer und dynamischer Speicherzuweisung

Rekursion vs. Iteration in Tabellenform

VERGLEICHSGRUNDLAGE  REKURSIONWIEDERHOLUNG
Beschreibung    Bei der Rekursion handelt es sich um eine rekursive Funktion, die sich selbst wiederholt aufruft, bis eine Basisbedingung nicht erreicht ist (Funktion, die teilweise von ihr selbst definiert ist).    Bei der Iteration werden Schleifen verwendet, durch die eine Menge von Anweisungen wiederholt ausgeführt wird, bis die Bedingung nicht falsch ist (schleifenbasierte Wiederholungen eines Prozesses).
CodegrößeRekursion hält Ihren Code kurz und einfach.    Der iterative Ansatz macht Ihren Code länger.
Was es beinhaltetBei rekursiver Funktion wird nur die Abbruchbedingung (Basisfall) angegeben.    Die Iteration umfasst die Initialisierung, Bedingung und Ausführung der Anweisung innerhalb der Schleife und das Aktualisieren (inkrementieren und dekrementieren) der Steuervariablen.  
GemeinkostenRekursive Funktionen bringen einen hohen Overhead mit sich, da jede Funktion den aktuellen Zustand aufruft, Parameter usw. müssen gepusht und aus dem Stack herausgeholt werden.Bei der Iteration fehlt der Overhead.
StrukturRekursion verwendet Auswahlstruktur.    Iteration verwendet Wiederholungsstruktur.
BeendigungDie Rekursion endet, wenn ein Basisfall erkannt wird.    Die Iteration wird beendet, wenn die Schleifenfortsetzungsbedingung fehlschlägt.
GeschwindigkeitAufgrund des Mehraufwands für die Stapelpflege ist die Rekursion relativ langsamer als die Iteration.  Bei der Iteration wird kein Stapel verwendet; Daher ist es relativ schneller als die Rekursion.
Unendliche BedingungEine unendliche Rekursion tritt auf, wenn der Rekursionsschritt das Problem nicht auf eine Weise reduziert, die unter einer bestimmten Bedingung konvergiert (Basisfall).  Eine Endlosschleife tritt bei der Iteration auf, wenn der Schleifenbedingungstest nie falsch wird.
Auswirkung auf die Betriebszeit des ProzessorsRekursion erhöht die Betriebszeit des Prozessors.    Iteration reduziert die Betriebszeit des Prozessors.
SpeichernutzungDie Rekursion verwendet den Stack-Bereich, um den aktuellen Status der Funktion zu speichern, wodurch die Speicherauslastung relativ hoch ist.  Die Iteration verwendet den permanenten Speicherbereich nur für die Variablen, die an ihrem Codeblock beteiligt sind, und daher ist der Speicherverbrauch relativ gering.
ZeitkomplexitätSehr hohe (meist exponentielle) Zeitkomplexität.    Relativ geringere Zeitkomplexität (in der Regel polynomial-logarithmisch).
Auswirkung auf die CPUUnendliche Rekursion kann die CPU zum Absturz bringen.  Bei Endlosschleifen werden CPU-Zyklen wiederholt verwendet.    
AnwendungFakultät, Fibonacci-Reihe usw.      Mittelwert einer Datenreihe ermitteln, Einmaleins erstellen usw.  

Lesen Sie auch : Unterschied zwischen While- und Do-While-Schleife in Java