Recursiune rapidă (cu exemple)

În acest articol, veți învăța să creați o funcție recursivă; o funcție care se numește singură.

O funcție care se numește singură este cunoscută ca funcție recursivă. Și această tehnică este cunoscută sub numele de recursivitate. În timp ce creați o funcție recursivă, trebuie să creați o condiție, astfel încât funcția să nu se numească la infinit (infinit).

Cum funcționează recursivitatea în Swift?

 func recurse () (// statement recurse ()) recurse () 

Figura de mai jos arată cum funcționează recursivitatea apelându-se mereu.

În diagrama de flux de mai sus, recursiunea se execută infinit. Cu toate acestea, aproape de fiecare dată, creați o recursivitate care se execută până când este îndeplinită o anumită condiție.

Pentru a preveni recursivitatea infinită, utilizați apelul recursiv din instrucțiunile condiționale Swift, de exemplu, dacă este … altă instrucțiune.

Exemplul 1: Imprimați N numere pozitive

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

Când rulați următorul program, ieșirea va fi:

 Numărătoarea inversă: 3 2 1 0

În programul de mai sus, declarația print("Countdown:")generează Countdown: în consolă. Și declarația countDownToZero(num:3)apelează funcția care ia un parametru Integer.

Declarația din interiorul funcției countDownToZero()execută și în cazul în care condiția num> 0este îndeplinită, funcția countDownToZero()este numit din nou ca countDownToZero(num: num - 1).

Dacă condiția nu este îndeplinită, apelul funcțional nu este efectuat și recursivitatea se oprește.

Să vedem acest lucru în pași

Etape de executare
Pași Apel funcțional Tipărit num> 0?
1 countDownToZero(3) 3 da
2 countDownToZero(2) 2 da
3 countDownToZero(1) 1 da
4 countDownToZero(0) 0 Nu (se termină)

Exemplul 2: Găsiți factorialul unui număr

 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)") 

Când rulați următorul program, ieșirea va fi:

 Factorialul de 4 este 24

Cum funcționează acest exemplu?

Să vedem acest lucru în pași

Etape de executare
Pași Argumentul a trecut Declarație de returnare Valoare
1 4 return 4 * factorial(of:3) 4 * factorial (din: 3)
2 3 return 3 * factorial(of:2) 4 * 3 * factorial (din: 2)
3 2 return 2 * factorial(of:1) 4 * 3 * 2 * factorial (din: 1)
4 1 return 1 4 * 3 * 2 * 1

De obicei recursivitatea este utilizată ca înlocuire a iterației atunci când soluția la o problemă poate fi găsită în aproximativ doi pași. Primul pas caută o soluție, dacă nu repetați procesul.

Articole interesante...