recursividade aula i – alg ii cpan – ufms. recursividade a recursão é uma técnica pela qual...
TRANSCRIPT
![Page 1: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/1.jpg)
Recursividade
Aula I – ALG IICPAN – UFMS
![Page 2: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/2.jpg)
Recursividade • A recursão é uma técnica pela qual uma rotina estruturada faz
chamadas a ela mesma, com o objetivo de completar uma tarefa repetitiva e que pode ser identificada como uma tarefa recursiva, pois nem todas as tarefas repetitivas podem ser resolvidas através da recursão
• Dizemos que a solução de uma tarefa é recursiva quando pode ser definida em termos de si mesma, definindo uma tarefa mínima e uma condição de parada
Um exemplo bastante intuitivo é a tarefa de “subir uma escada”
![Page 3: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/3.jpg)
Um exemplo bastante intuitivo é a tarefa de “subir uma escada”
Tarefa mínima
FIM DA ESCADA =
CONDIÇÃO DE PARADA
A tarefa “subir a escada” pode ser decomposta em uma repetição finita da tarefa “subir degrau”, até atingir a condição de parada.
![Page 4: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/4.jpg)
• A recursão também é chamada de definição circular.• Assim, a recursão ocorre quando algo é definido em termos de si
mesmo.• Outro exemplo clássico que pode ser resolvido de forma recursiva é o
calculo do fatorial de um número, onde, por definição temos:
Sendo n um número de inteiros: n! = {
Recursividade
1 se n = 0n* n – 1 se n > 0
Ou seja 0! = 1n! = n*(n-1)!
![Page 5: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/5.jpg)
• A ideia básica da recursão é dividir um problema maior em um conjunto de problemas menores, que são então resolvidos de forma independente e depois combinados para gerar a solução final.
• Isso fica evidente no calculo do fatorial
• O fatorial de um número n é o produto de todos os números inteiros entre 1 e n. Por exemplo, o fatorial de 3 é igual a 1*2*3, ou seja, 6.• Assim, o fatorial desse mesmo número 3 pode ser definido em termos
do fatorial de 2, ou seja, 3! = 3* 2! .
Recursividade
DIVIDIR E CONQUISTAR
![Page 6: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/6.jpg)
Função com e sem recursividade para o calculo do fatorial
![Page 7: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/7.jpg)
Função com e sem recursividade para o calculo do fatorial
A própria função fatorial está chamando ela mesma...
![Page 8: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/8.jpg)
![Page 9: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/9.jpg)
Recursividade
Critério de parada: determina quando a função deverá parar de chamar a sai mesma. Se ela não existir, a função irá executar infinitamente.
No exemplo: calculo fatorial, o critério de parada ocorre quando tentamos calcular o fatorial de zero. 0! = 1.
![Page 10: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/10.jpg)
Recursividade
![Page 11: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/11.jpg)
![Page 12: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/12.jpg)
Exemplo: o que acontece quando chamamos a função fatorial com um valor de n = 3 ?
![Page 13: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/13.jpg)
![Page 14: Recursividade Aula I – ALG II CPAN – UFMS. Recursividade A recursão é uma técnica pela qual uma rotina estruturada faz chamadas a ela mesma, com o objetivo](https://reader033.vdocuments.net/reader033/viewer/2022051403/570638541a28abb8238fa590/html5/thumbnails/14.jpg)
Exercícios