Hurtig rekursion (med eksempler)

I denne artikel lærer du at oprette en rekursiv funktion; en funktion, der kalder sig selv.

En funktion, der kalder sig selv, er kendt som en rekursiv funktion. Og denne teknik er kendt som rekursion. Mens du opretter en rekursiv funktion, skal du oprette en betingelse, så funktionen ikke kalder sig uendelig (uendeligt).

Hvordan fungerer rekursion i Swift?

 func recurse () (// udsagn recurse ()) recurse () 

Figuren nedenfor viser, hvordan rekursion fungerer ved at kalde sig igen og igen.

I ovenstående flowdiagram udføres rekursionen uendeligt. Imidlertid opretter du næsten alle gange en rekursion, der udføres, indtil en eller anden betingelse er opfyldt.

For at forhindre uendelig rekursion skal du bruge det rekursive opkald inde i Swift Conditional Statements, f.eks. Hvis … else-udsagn.

Eksempel 1: Udskriv N positive tal

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

Når du kører følgende program, bliver output:

 Nedtælling: 3 2 1 0

I ovenstående program print("Countdown:")udsender erklæringen Countdown: i konsollen. Og erklæringen countDownToZero(num:3)kalder den funktion, der tager en parameter Integer.

Erklæringen inde i funktionen countDownToZero()udføres, og hvis betingelsen num> 0er opfyldt, countDownToZero()kaldes funktionen igen som countDownToZero(num: num - 1).

Hvis betingelsen ikke er opfyldt, udføres funktionsopkaldet ikke, og rekursionen stopper.

Lad os se dette i trin

Udførelsestrin
Trin Funktionsopkald Trykt antal> 0?
1 countDownToZero(3) 3 Ja
2 countDownToZero(2) 2 Ja
3 countDownToZero(1) 1 Ja
4 countDownToZero(0) 0 Nej (slutter)

Eksempel 2: Find et nummer på et faktura

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

Når du kører følgende program, bliver output:

 Faktoren på 4 er 24

Hvordan dette eksempel fungerer?

Lad os se dette i trin

Udførelsestrin
Trin Argumentet bestået Returerklæring Værdi
1 4 return 4 * factorial(of:3) 4 * fabrik (af: 3)
2 3 return 3 * factorial(of:2) 4 * 3 * fabrik (af: 2)
3 2 return 2 * factorial(of:1) 4 * 3 * 2 * fabrik (af: 1)
4 1 return 1 4 * 3 * 2 * 1

Normalt bruges rekursion som erstatning for iteration, når løsningen på et problem kan findes i omkring to trin. Det første trin søger efter en løsning, hvis ikke gentag processen.

Interessante artikler...