Sobes.tech
Junior

O que é recursão?

sobes.tech IA

Resposta da IA

A recursão é uma forma de definir ou executar algo quando o objeto ou processo é definido ou executado através de si mesmo. Em programação, é uma função que chama direta ou indiretamente a si mesma.

Componentes principais de uma função recursiva:

  • Caso base (Base Case): A condição na qual a recursão termina. Isso evita um ciclo infinito.
  • Passo recursivo (Recursive Step): O passo em que a função chama a si mesma para resolver uma subtarefa, cujo tamanho é menor que a tarefa original, mas que busca atingir o caso base.

Exemplo de cálculo do fatorial de um número usando recursão:

def factorial(n):
    # Caso base: o fatorial de 0 ou 1 é 1
    if n == 0 or n == 1:
        return 1
    # Passo recursivo: n! = n * (n-1)!
    else:
        return n * factorial(n - 1)

# Exemplo de chamada
# resultado = factorial(5)  # Resultado: 120

A recursão pode tornar o código mais elegante para tarefas que têm uma estrutura recursiva (por exemplo, percorrer árvores, alguns algoritmos de ordenação). No entanto, pode consumir mais memória (devido à pilha de chamadas) e, em alguns casos, ser menos eficiente em comparação com soluções iterativas.

Comparação com a iteração:

Aspeto Recursão Iteração
Memória Pode usar mais memória (pilha de chamadas) Geralmente requer menos memória
Desempenho Em alguns casos, pode ser mais lento Geralmente tem desempenho mais previsível
Legibilidade Para tarefas recursivas, pode ser mais clara Para tarefas simples, muitas vezes mais evidente
Controlo Menos controlo explícito sobre o ciclo (pilha) Controlo explícito através de ciclos (for, while)

Na automação QA, a recursão pode ser usada, por exemplo, ao percorrer elementos aninhados numa página web ou dados estruturados (JSON, XML) para procurar ou verificar um elemento específico.