A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos Recursivos Klauko Mota. Conceito de Recursividade Um programa recursivo é um programa que chama a si mesmo, direta ou indiretamente Conceito.

Apresentações semelhantes


Apresentação em tema: "Algoritmos Recursivos Klauko Mota. Conceito de Recursividade Um programa recursivo é um programa que chama a si mesmo, direta ou indiretamente Conceito."— Transcrição da apresentação:

1 Algoritmos Recursivos Klauko Mota

2 Conceito de Recursividade Um programa recursivo é um programa que chama a si mesmo, direta ou indiretamente Conceito poderoso –Define conjuntos infinitos com comandos finitos Vantagens –Redução do tamanho do código fonte –Permite descrever algoritmos de forma mais clara e concisa Desvantagens –Redução do desempenho de execução devido ao tempo para gerenciamento de chamadas –Dificuldades na depuração de programas recursivos, especialmente se a recursão for muito profunda

3 Implementação da Recursividade Usa-se uma pilha para armazenar os dados usados em cada chamada de um procedimento / função que não terminou Todos os dados não globais são armazenados na pilha, informando o resultado corrente Quando uma ativação anterior prossegue, os dados da pilha são recuperados

4 Exemplo – Função Fatorial Definição de uma Função Fatorial a)Não Recursiva: –N! = 1, para N=0; –N! = 1 x 2 x 3 x... x N, para N>=1; b)Recursiva: –N! = 1, para N=0; –N! = N x (N – 1), para N>=1;

5 Implementação de Fatorial Recursivo X Não Recursivo int Fat (int n){ int result ; result :=1; for( i = 2; i <= n; i++) result = result * i; return result; } Implementação não Recursiva int Fat ( int n ){ if n = 0 then return 1; else return n * Fat (n-1); } Implementação Recursiva

6 Resultado da Implementação Fatorial = 3 * (Fatorial(2)) Fatorial = 4 * (Fatorial(3)) Fatorial = 2 * (Fatorial(1)) Fatorial = 1 * (Fatorial(0)) Fatorial = 1 1 1 Fatorial = 2 2 Fatorial = 6 6 Fatorial = 24

7 Dicas Não se aprende recursividade sem praticar Para montar um algoritmo recursivo –Defina pelo menos um caso básico (condição de terminação); –Quebre o problema em problemas menores, definindo o(s) caso(s) com recursão(ões) –Fazer o teste de finitude, isto é, certificar-se de que as sucessivas chamadas recursivas levam obrigatoriamente, e numa quantidade finita de vezes, ao(s) caso(s) básico(s)

8 Finalizando Recursividade é um tópico fundamental Algoritmos recursivos aparecem bastante na prática Dividir e conquistar é uma técnica naturalmente recursiva para solução de problemas Mais recursividade no nosso futuro, principalmente na implementação de árvores...


Carregar ppt "Algoritmos Recursivos Klauko Mota. Conceito de Recursividade Um programa recursivo é um programa que chama a si mesmo, direta ou indiretamente Conceito."

Apresentações semelhantes


Anúncios Google