Recursão rápida (com exemplos)

Neste artigo, você aprenderá a criar uma função recursiva; uma função que chama a si mesma.

Uma função que chama a si mesma é conhecida como função recursiva. E, esta técnica é conhecida como recursão. Ao criar uma função recursiva, você deve criar uma condição para que a função não se chame indefinidamente (infinitamente).

Como funciona a recursão em Swift?

 função recurse () (// declarações recurse ()) recurse () 

A figura abaixo mostra como funciona a recursão, chamando a si mesma repetidamente.

No fluxograma acima, a recursão é executada infinitamente. No entanto, quase todas as vezes, você cria uma recursão que executa até que alguma condição seja atendida.

Para prevenir a recursão infinita, use a chamada recursiva dentro das declarações condicionais Swift, por exemplo, declaração if… else.

Exemplo 1: Imprimir N números positivos

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

Quando você executa o programa a seguir, a saída será:

 Contagem regressiva: 3 2 1 0

No programa acima, a instrução print("Countdown:")produz Countdown: no console. E a instrução countDownToZero(num:3)chama a função que recebe um parâmetro Integer.

A instrução dentro da função é countDownToZero()executada e se a condição num> 0for atendida, a função countDownToZero()é chamada novamente como countDownToZero(num: num - 1).

Se a condição não for atendida, a chamada de função não será realizada e a recursão será interrompida.

Vamos ver isso em etapas

Etapas de execução
Passos Chamada de função Impresso num> 0?
1 countDownToZero(3) 3 sim
2 countDownToZero(2) 2 sim
3 countDownToZero(1) 1 sim
4 countDownToZero(0) 0 Não (termina)

Exemplo 2: Encontre o fatorial de um número

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

Quando você executa o programa a seguir, a saída será:

 O fatorial de 4 é 24

Como funciona este exemplo?

Vamos ver isso em etapas

Etapas de execução
Passos Argumento aprovado Declaração de devolução Valor
1 4 return 4 * factorial(of:3) 4 * fatorial (de: 3)
2 3 return 3 * factorial(of:2) 4 * 3 * fatorial (de: 2)
3 2 return 2 * factorial(of:1) 4 * 3 * 2 * fatorial (de: 1)
4 1 return 1 4 * 3 * 2 * 1

Normalmente, a recursão é usada como uma substituição da iteração quando a solução para um problema pode ser encontrada em cerca de duas etapas. A primeira etapa busca uma solução, caso não repita o processo.

Artigos interessantes...