Diferença chave: Na programação, a recursão pode ser explicada considerando uma função recursiva. Uma função recursiva é aquela que se chama novamente para repetir o código. Por outro lado, a iteração é obtida por uma função iterativa que faz um loop para repetir alguma seção do código.
Na programação, a recursão e a iteração são usadas para obter repetições. Eles se referem a um processo que é repetido inúmeras vezes. A recursão é baseada em uma abordagem na qual algo se refere a si mesmo até que uma condição seja satisfeita. Diz-se que um método é recursivo se pode se chamar direta ou indiretamente como -
{
... nome () ...
}
ou
nome vazio ()
{
... jogos() ...
}
void game () {
... nome () ...
}
Para uma recursão bem sucedida, deve-se ter em mente que cada chamada feita no processo de recursão deve simplificar o cálculo. A recursão é alcançada pela definição de um caso base.
int fatorial (int N)
{
if (N == 0) retorna 1;
mais retorno (N * fatorial (N-1));
}
Neste exemplo, a recursão pode ser facilmente vista na declaração (N * fatorial (N-1)), onde ela está chamando a função fatorial novamente. A recursão é muito útil, pois ajuda no encurtamento do código. No entanto, a recursão é um pouco lenta no desempenho.
função fatorial (n)
{
var loop, resultado;
resultado = 1;
para (loop = 1; loop <= n; loop ++)
{
resultado = resultado * loop;
}
resultado de retorno;
}
Neste exemplo, o looping é obtido usando números inteiros de 1 a n, e a instrução loop <= n é usada como um critério para interromper o looping adicional. Assim, podemos concluir que os mesmos resultados podem ser obtidos usando uma recursão e uma iteração. No entanto, ambos são baseados em abordagens que são um pouco diferentes. Qualquer algoritmo recursivo também pode ser escrito usando iterações (loops).
Comparação entre Recursão e Iteração:
Recursão | Iteração | |
Definição | Recursão refere-se a uma função recursiva na qual ela se chama novamente para repetir o código. | A iteração é obtida por uma função iterativa que faz um loop para repetir alguma parte do código. |
Ponto importante | Um caso base precisa ser determinado | Uma condição de rescisão precisa ser determinada |
atuação | Comparativamente lento | Comparativamente rápido |
Uso de memória | Comparativamente mais | Comparativamente menos |
Código | Menor | Mais longo |
Repetição infinita | Recursão infinita é capaz de travar o sistema | Loop infinito consome ciclos da CPU repetidamente |
Estrutura | Seleção | Repetição |
Variáveis locais | Não requerido | Requeridos |