Schnelle Rekursion (mit Beispielen)

In diesem Artikel lernen Sie, eine rekursive Funktion zu erstellen. eine Funktion, die sich selbst aufruft.

Eine Funktion, die sich selbst aufruft, wird als rekursive Funktion bezeichnet. Diese Technik wird als Rekursion bezeichnet. Beim Erstellen einer rekursiven Funktion müssen Sie eine Bedingung erstellen, damit sich die Funktion nicht unbegrenzt (unendlich) aufruft.

Wie funktioniert die Rekursion in Swift?

 func recurse () (// Anweisungen recurse ()) recurse () 

Die folgende Abbildung zeigt, wie die Rekursion funktioniert, indem sie sich immer wieder aufruft.

Im obigen Flussdiagramm wird die Rekursion unendlich ausgeführt. In fast allen Fällen erstellen Sie jedoch eine Rekursion, die ausgeführt wird, bis eine bestimmte Bedingung erfüllt ist.

Um eine unendliche Rekursion zu verhindern, verwenden Sie den rekursiven Aufruf in den Swift Conditional Statements, z. B. if… else-Anweisung.

Beispiel 1: N positive Zahlen drucken

 func countDownToZero(num: Int) ( print(num) if num> 0 ( countDownToZero(num: num - 1) ) ) print("Countdown:") countDownToZero(num:3) 

Wenn Sie das folgende Programm ausführen, lautet die Ausgabe:

 Countdown: 3 2 1 0

In dem obigen Programm die Anweisung print("Countdown:")gibt Countdown: in der Konsole. Und die Anweisung countDownToZero(num:3)ruft die Funktion auf, die einen Parameter akzeptiert Integer.

Die Anweisung innerhalb der Funktion wird countDownToZero()ausgeführt und wenn die Bedingung num> 0erfüllt ist, wird die Funktion countDownToZero()erneut als aufgerufen countDownToZero(num: num - 1).

Wenn die Bedingung nicht erfüllt ist, wird der Funktionsaufruf nicht ausgeführt und die Rekursion wird gestoppt.

Lassen Sie uns dies in Schritten sehen

Ausführungsschritte
Schritte Funktionsaufruf Gedruckt num> 0?
1 countDownToZero(3) 3 Ja
2 countDownToZero(2) 2 Ja
3 countDownToZero(1) 1 Ja
4 countDownToZero(0) 0 Nein (endet)

Beispiel 2: Finden Sie die Fakultät einer Zahl

 func factorial(of num: Int) -> Int ( if num == 1 ( return 1 ) else ( return num * factorial(of:num - 1) ) ) let x = 4 let result = factorial(of: x) print("The factorial of (x) is (result)") 

Wenn Sie das folgende Programm ausführen, lautet die Ausgabe:

 Die Fakultät von 4 ist 24

Wie funktioniert dieses Beispiel?

Lassen Sie uns dies in Schritten sehen

Ausführungsschritte
Schritte Argument übergeben Rückgabeanweisung Wert
1 4 return 4 * factorial(of:3) 4 * Fakultät (von: 3)
2 3 return 3 * factorial(of:2) 4 * 3 * Fakultät (von: 2)
3 2 return 2 * factorial(of:1) 4 * 3 * 2 * Fakultät (von: 1)
4 1 return 1 4 * 3 * 2 * 1

Normalerweise wird die Rekursion als Ersatz für die Iteration verwendet, wenn die Lösung eines Problems in etwa zwei Schritten gefunden werden kann. Der erste Schritt sucht nach einer Lösung, wenn nicht, wiederholen Sie den Vorgang.

Interessante Beiträge...