14
Recursividade Aula I – ALG II CPAN – UFMS

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

Embed Size (px)

Citation preview

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

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

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

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

• 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

• 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

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

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
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

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

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
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

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
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

Exercícios