BESTE WEBSITE FÜR WEBENTWICKLER
C Sprache. W3Schools auf Deutsch. Unterricht für Anfänger

Ua En Es

C Rekursion


Rekursion

Rekursion ist die Technik, einen Funktionsaufruf selbst durchzuführen. Diese Technik bietet eine Möglichkeit, komplizierte Probleme in einfache Probleme zu zerlegen, die leichter zu lösen sind.

Rekursion ist möglicherweise etwas schwer zu verstehen. Der beste Weg herauszufinden, wie es funktioniert, besteht darin, damit zu experimentieren.


Rekursionsbeispiel

Das Addieren zweier Zahlen ist einfach, das Addieren eines Zahlenbereichs ist jedoch komplizierter. Im folgenden Beispiel wird die Rekursion verwendet, um einen Zahlenbereich zu addieren, indem sie in die einfache Aufgabe der Addition zweier Zahlen zerlegt wird:

Beispiel

int sum(int k);

int main() {
  int result = sum(10);
  printf("%d", result);
  return 0;
}

int sum(int k) {
  if (k > 0) {
    return k + sum(k - 1);
  } else {
    return 0;
  }
}
Try it Yourself »

Beispiel erklärt

Wenn die Funktion sum() aufgerufen wird, fügt sie den Parameter k zur Summe aller Zahlen kleiner als hinzu k und gibt das Ergebnis zurück. Wenn k 0 wird, gibt die Funktion einfach 0 zurück. Bei der Ausführung führt das Programm die folgenden Schritte aus:

10 + sum(9)
10 + ( 9 + sum(8) )
10 + ( 9 + ( 8 + sum(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + sum(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

Da sich die Funktion nicht selbst aufruft, wenn k 0 ist, stoppt das Programm an dieser Stelle und gibt das Ergebnis zurück.

Der Entwickler sollte bei der Rekursion sehr vorsichtig sein, da es sehr leicht passieren kann, dass er eine Funktion schreibt, die niemals beendet wird oder übermäßig viel Speicher oder Prozessorleistung verbraucht. Bei korrekter Schreibweise kann die Rekursion jedoch ein sehr effizienter und mathematisch eleganter Programmieransatz sein.


Erklärung der Rekursion aus künstlicher Intelligenz

Was ist Rekursion?

Rekursion ist eine Programmiertechnik, die es einem Programm ermöglicht, sich selbst aufzurufen. Mit der Rekursion können komplexe Probleme gelöst werden, die mit anderen Methoden nur schwer oder gar nicht gelöst werden können.

Beispiel

int factorial(int n) {
   if (n == 0) {
      return 1;
   } else {
      return n * factorial(n - 1);
   }
}

Dieses Programm berechnet die Fakultät einer Zahl. Die Fakultät der Zahl n ist gleich dem Produkt aller ganzen Zahlen von 1 bis n.

Rekursion kann zur Lösung vieler verschiedener Probleme verwendet werden.

Hier sind einige Beispiele:

  • Berechnung der Fakultät
  • Suche nach Elementen in einem Array
  • Rekursiver Abstieg
  • Berechnung von Pi

Rekursion im C

  • Rekursion in C wird mithilfe von Funktionen implementiert
  • Eine Funktion, die sich selbst aufruft, wird als rekursive Funktion bezeichnet
  • Eine rekursive Funktion muss eine Beendigungsbedingung haben, die die Rekursion stoppt

Negative Seiten der Rekursion

  • Rekursion kann schwer zu verstehen und zu schreiben sein
  • Rekursion kann zu Stapelüberläufen führen

Fazit

Rekursion ist eine leistungsstarke Programmiertechnik, die zur Lösung komplexer Probleme eingesetzt werden kann. Allerdings kann es schwierig sein, Rekursion zu verstehen und zu schreiben.