Diferença Entre Recursão E Iteração

Índice:

Diferença Entre Recursão E Iteração
Diferença Entre Recursão E Iteração

Vídeo: Diferença Entre Recursão E Iteração

Vídeo: Diferença Entre Recursão E Iteração
Vídeo: Relações entre recursão e iteração | JavaScript 2024, Pode
Anonim

Diferença chave - recursão vs iteração

Recursão e iteração podem ser usadas para resolver problemas de programação. A abordagem para resolver o problema usando recursão ou iteração depende da maneira de resolver o problema. A principal diferença entre recursão e iteração é que recursão é um mecanismo para chamar uma função dentro da mesma função, enquanto a iteração é para executar um conjunto de instruções repetidamente até que a condição dada seja verdadeira. Recursão e Iteração são técnicas importantes para desenvolver algoritmos e criar aplicativos de software.

CONTEÚDO

1. Visão geral e diferença principal

2. O que é recursão

3. O que é iteração

4. Semelhanças entre recursão e iteração

5. Comparação lado a lado - recursão vs iteração na forma tabular

6. Resumo

O que é recursão?

Quando uma função chama a si mesma dentro da função, isso é conhecido como recursão. Existem dois tipos de recursão. Eles são recursão finita e recursão infinita. A recursão finita tem uma condição final. A recursão infinita não tem uma condição final.

A recursão pode ser explicada usando o programa para calcular fatoriais.

n! = n * (n-1) !, se n> 0

n! = 1, se n = 0;

Consulte o código abaixo para calcular o fatorial de 3 (3! = 3 * 2 * 1).

intmain () {

valor int = fatorial (3);

printf (“Fatorial é% d / n”, valor);

return 0;

}

intfactorial (intn) {

if (n == 0) {

return 1;

}

outro {

retornar n * fatorial (n-1);

}

}

Ao chamar fatorial (3), essa função chamará fatorial (2). Ao chamar fatorial (2), essa função chamará fatorial (1). Então fatorial (1) chamará fatorial (0). fatorial (0) retornará 1. No programa acima, a condição n == 0 no bloco “if” é a condição básica. De acordo com a mesma coisa, a função fatorial é chamada repetidamente.

As funções recursivas estão relacionadas à pilha. Em C, o programa principal pode ter várias funções. Portanto, main () é a função de chamada, e a função que é chamada pelo programa principal é a função chamada. Quando a função é chamada, o controle é dado à função chamada. Após a conclusão da execução da função, o controle retorna ao principal. Em seguida, o programa principal continua. Portanto, ele cria um registro de ativação ou um frame de pilha para continuar a execução.

Diferença entre recursão e iteração
Diferença entre recursão e iteração

Figura 01: Recursão

No programa acima, ao chamar fatorial (3) de principal, ele cria um registro de ativação na pilha de chamadas. Em seguida, o quadro de pilha fatorial (2) é criado no topo da pilha e assim por diante. O registro de ativação mantém informações sobre variáveis locais, etc. Cada vez que a função é chamada, um novo conjunto de variáveis locais é criado no topo da pilha. Esses frames de pilha podem diminuir a velocidade. Da mesma forma na recursão, uma função chama a si mesma. A complexidade de tempo para uma função recursiva é encontrada pelo número de vezes que a função é chamada. A complexidade de tempo para uma chamada de função é O (1). Para n número de chamadas recursivas, a complexidade de tempo é O (n).

O que é iteração?

A iteração é um bloco de instruções que se repete continuamente até que a condição fornecida seja verdadeira. A iteração pode ser obtida usando “for loop”, “do-while loop” ou “while loop”. A sintaxe “for loop” é a seguinte.

para (inicialização; condição; modificar) {

// afirmações;

}

Diferença chave entre recursão e iteração
Diferença chave entre recursão e iteração

Figura 02: “para diagrama de fluxo de loop”

A etapa de inicialização é executada primeiro. Esta etapa é declarar e inicializar as variáveis de controle do loop. Se a condição for verdadeira, as instruções dentro das chaves serão executadas. Essas declarações são executadas até que a condição seja verdadeira. Se a condição for falsa, o controle vai para a próxima instrução após o “loop for”. Depois de executar as instruções dentro do loop, o controle vai para a seção de modificação. É para atualizar a variável de controle do loop. Em seguida, a condição é verificada novamente. Se a condição for verdadeira, as instruções entre chaves serão executadas. Desta forma, o “for loop” itera.

Em “loop while”, as instruções dentro do loop são executadas até que a condição seja verdadeira.

while (condição) {

//afirmações

}

No loop “do-while”, a condição é verificada no final do loop. Portanto, o loop é executado pelo menos uma vez.

Faz{

//afirmações

} enquanto (condição)

O programa para encontrar o fatorial de 3 (3!) Usando iteração (“for loop”) é o seguinte.

int main () {

intn = 3, fatorial = 1;

inti;

para (i = 1; i <= n; i ++) {

fatorial = fatorial * i;

}

printf (“Fatorial é% d / n”, fatorial);

return 0;

}

Quais são as semelhanças entre recursão e iteração?

  • Ambas são técnicas para resolver um problema.
  • A tarefa pode ser resolvida em recursão ou iteração.

Qual é a diferença entre recursão e iteração?

Artigo Diff meio antes da tabela

Recursão vs Iteração

A recursão é um método de chamar uma função dentro da mesma função. A iteração é um bloco de instruções que se repete até que a condição fornecida seja verdadeira.
Complexidade do Espaço
A complexidade do espaço de programas recursivos é maior do que as iterações. A complexidade do espaço é menor nas iterações.
Rapidez
A execução da recursão é lenta. Normalmente, a iteração é mais rápida do que a recursão.
Doença
Se não houver condição de término, pode haver uma recursão infinita. Se a condição nunca se tornar falsa, será uma iteração infinita.
Pilha
Na recursão, a pilha é usada para armazenar variáveis locais quando a função é chamada. Em uma iteração, a pilha não é usada.
Legibilidade do código
Um programa recursivo é mais legível. O programa iterativo é mais difícil de ler do que um programa recursivo.

Resumo - Recursão vs Iteração

Este artigo discutiu a diferença entre recursão e iteração. Ambos podem ser usados para resolver problemas de programação. A diferença entre recursão e iteração é que recursão é um mecanismo para chamar uma função dentro da mesma função e iterá-la para executar um conjunto de instruções repetidamente até que a condição dada seja verdadeira. Se um problema pode ser resolvido de forma recursiva, também pode ser resolvido usando iterações.

Baixe a versão em PDF de recursão vs iteração

Você pode baixar a versão PDF deste artigo e usá-la para fins off-line de acordo com a nota de citação. Faça o download da versão em PDF aqui. Diferença entre recursão e iteração

Recomendado: