MC3305 - Algoritmos e Estruturas de Dados II
Transcript of MC3305 - Algoritmos e Estruturas de Dados II
![Page 1: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/1.jpg)
1
Aula 03:Recursão / Recursividade
BC1424Algoritmos e Estruturas de Dados I
Prof. Jesús P. Mena-Chalco
1Q-2016
![Page 2: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/2.jpg)
2
Sobre a Lista 01
![Page 3: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/3.jpg)
3
Lista 01
Solve me first Simple Array SumA Very Big SumDiagonal DifferencePlus Minus (opcional – bônus)
Data: 24/Fevereiro (quarta-feira) até às 23h50.Envio: Através do Tidia.
Arquivos:
Para cada exercício-problema deverá submeter:O código fonte: nome do arquivo → RA_nomeDoProblema.c
O comprovante de aceitação (screenshot) → RA_nomeDoProblema.pdf
Exemplo: 10123456_solveMeFirst.c 10123456_solveMeFirst.pdf
[Mensagem]Será utilizado um programade deteção de plágio em
todas as submissões!
![Page 4: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/4.jpg)
4
www.hackerrank.com
![Page 5: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/5.jpg)
5
Linguagem whitespace
![Page 6: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/6.jpg)
6
Recursão
![Page 7: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/7.jpg)
7
Anuncio de cacão com uma imagem recursiva.
![Page 8: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/8.jpg)
8
“To understand recursion, we must first understand recursion”
– folclore
“Ao tentar resolver o problema, encontrei obstáculos dentro de obstáculos.
Por isso, adotei uma solução recursiva”– um aluno
![Page 9: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/9.jpg)
9
Recursão
O conceito de recursão é de fundamental importância em computação!
Muitos problemas computacionais têm a seguinte propriedade:
Cada instância do problema contém uma instância menor do mesmo problema.→ Dizemos que esses problemas têm estrutura recursiva.
(*) Fonte: P. Feofiloff. Algoritmos em Linguagem C. 1ª Edição, Editora Campos, 2008.
![Page 10: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/10.jpg)
10
Recursão
Para resolver um tal problema é natural aplicar o seguinte método:
Se a instância em questão é pequena:→ Resolva-a diretamente
(use força bruta se necessário)
Senão→ Reduza-a a uma instância menor do mesmo problema→ Aplique o método à instância menor
e volte à instância original.
A aplicação do método produz um algoritmo recursivo.
(*) Fonte: P. Feofiloff. Algoritmos em Linguagem C. 1ª Edição, Editora Campos, 2008.
![Page 11: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/11.jpg)
A recursão pode ser infinita.Não esqueça de definir o caso base (condição de parada)https://www.youtube.com/watch?v=ANf0vsDHI4c
Fonte: http://en.wikipedia.org/wiki/Recursion
![Page 12: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/12.jpg)
![Page 13: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/13.jpg)
13
Fatorial de um número
![Page 14: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/14.jpg)
14
Fatorial de um número
Considere a função fatorial: fatorial = n! para um número inteiro não-negativo arbitrário
![Page 15: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/15.jpg)
15
Fatorial de um número
![Page 16: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/16.jpg)
16(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php
![Page 17: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/17.jpg)
17
Fatorial de um número
Número de vezes em que a função F é chamada?
![Page 18: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/18.jpg)
18
Fatorial de um número
Número de vezes em que a função F é chamada? n
![Page 19: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/19.jpg)
19
Fatorial de um número
$ gcc fatorial.c o fatorial.exe
$ ./fatorial.exe 17355687428096000
$ ./fatorial.exe 186402373705728000
$ ./fatorial.exe 19121645100408832000
$ ./fatorial.exe 202432902008176640000
![Page 20: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/20.jpg)
20
Somatório de números
![Page 21: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/21.jpg)
21
Um exemplo de somatória
Dados dois número inteiros, n e k, crie uma função iterativa para calcular a seguinte somatória:
![Page 22: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/22.jpg)
22
Um exemplo de somatória
$ gcc somatoria.c lm o somatoria.exe$ ./somatoria.exe4201102999460754
![Page 23: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/23.jpg)
23
Um exemplo de somatória
Dados dois número inteiros, n e k, crie uma função iterativa para calcular a seguinte somatória:
![Page 24: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/24.jpg)
24
Um exemplo de somatória
Dados dois número inteiros, n e k, crie uma função iterativa para calcular a seguinte somatória:
![Page 25: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/25.jpg)
n=4, k=99
![Page 26: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/26.jpg)
n=3, k=99
n=4, k=99
4 +⁹⁹
![Page 27: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/27.jpg)
n=3, k=99
n=2, k=993 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 28: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/28.jpg)
n=3, k=99
n=2, k=993 +⁹⁹
n=1, k=992 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 29: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/29.jpg)
n=3, k=99
n=2, k=993 +⁹⁹
n=1, k=992 +⁹⁹
n=0, k=991 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 30: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/30.jpg)
n=3, k=99
n=2, k=993 +⁹⁹
n=1, k=992 +⁹⁹
01 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 31: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/31.jpg)
n=3, k=99
n=2, k=993 +⁹⁹
1 +0⁹⁹2 +⁹⁹
01 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 32: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/32.jpg)
n=3, k=99
2 +1 +0⁹⁹ ⁹⁹3 +⁹⁹
1 +0⁹⁹2 +⁹⁹
01 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 33: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/33.jpg)
3 +2 +1 +0⁹⁹ ⁹⁹ ⁹⁹
2 +1 +0⁹⁹ ⁹⁹3 +⁹⁹
1 +0⁹⁹2 +⁹⁹
01 +⁹⁹
n=4, k=99
4 +⁹⁹
![Page 34: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/34.jpg)
3 +2 +1 +0⁹⁹ ⁹⁹ ⁹⁹
2 +1 +0⁹⁹ ⁹⁹3 +⁹⁹
1 +0⁹⁹2 +⁹⁹
01 +⁹⁹
4 +3 +2 +1 +0⁹⁹ ⁹⁹ ⁹⁹ ⁹⁹
4 +⁹⁹
![Page 35: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/35.jpg)
3 +2 +1 +0⁹⁹ ⁹⁹ ⁹⁹
2 +1 +0⁹⁹ ⁹⁹3 +⁹⁹
1 +0⁹⁹2 +⁹⁹
01 +⁹⁹
4 +3 +2 +1 +0⁹⁹ ⁹⁹ ⁹⁹ ⁹⁹
4 +⁹⁹
![Page 36: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/36.jpg)
Um laço e um acumulador
Sem laço e sem acumulador?
![Page 37: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/37.jpg)
37
Função recursiva
Uma função recursiva é definida em seus próprios termos.
Toda função pode ser escrita como função recursiva sem o uso de interação (laços).
Reciprocamente, qualquer função recursiva pode ser descrita através de interações sucessivas.
Ingredientes:Definição de casos bases (que não envolvem recursão)Passos recursivos, com decremento na entrada, no sentido do caso base.
![Page 38: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/38.jpg)
38
Recursão
Para resolver um tal problema é natural aplicar o seguinte método:
Se a instância em questão é pequena:→ Resolva-a diretamente
(use força bruta se necessário)
Senão→ Reduza-a a uma instância menor do mesmo problema→ Aplique o método à instância menor
e volte à instância original.
A aplicação do método produz um algoritmo recursivo.
(*) Fonte: P. Feofiloff. Algoritmos em Linguagem C. 1ª Edição, Editora Campos, 2008.
![Page 39: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/39.jpg)
39
Números de Fibonacci
![Page 40: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/40.jpg)
40
Números de Fibonacci
(*) fonte http://britton.disted.camosun.bc.ca/fibslide/jbfibslide.htm
![Page 41: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/41.jpg)
41
Números de Fibonacci
![Page 42: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/42.jpg)
42
Números de Fibonacci
Função é duplamente recursiva (efetua mais de uma chamada a ela própria)
![Page 43: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/43.jpg)
43
Números de Fibonacci
![Page 44: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/44.jpg)
44
Números de Fibonacci
Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1)
Pensou na eficiência da abordagem recursiva?
![Page 45: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/45.jpg)
45
Números de Fibonacci
Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1)
Fib (0)
Fib (7) Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1)
Fib (8) Fib (7) Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0)
Fib (9) Fib (8) Fib (7) Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (7) Fib (6) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (5) Fib (4) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1) Fib (2) Fib (1) Fib (0) Fib (3) Fib (2) Fib (1) Fib (0) Fib (1)
![Page 46: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/46.jpg)
46
Números de Fibonacci
n 10 20 30 50 100
Recursivo 8 ms 1 seg 2 min 21 dias 109 anos
Iterativo 1/6ms 1/3ms ½ ms ¾ ms 1,5 ms
Fonte: Brassard and Bradley (1996) apud ZIVIANI
![Page 47: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/47.jpg)
47
Números de Fibonacci
Os números de Fibonacci foram propostos por Leonardo di Pisa (Fibonacci), em 1202, como uma solução para o problema de determinar o tamanho da população de coelhos
(*) fonte http://www.oxfordmathcenter.com/drupal7/node/487
![Page 48: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/48.jpg)
48
Número de digitos binários
![Page 49: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/49.jpg)
49
Número de digitos binários
Crie uma função que calcula o número mínimo de digitos binários para representar um número inteiro decimal positivo n.
138 é representado com, no mínimo, 8 dígitos binários
![Page 50: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/50.jpg)
50
Número de digitos binários
![Page 51: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/51.jpg)
51
Número de digitos binários
Número de vezes em que a função bin é chamada?
![Page 52: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/52.jpg)
52
Número de digitos binários
Número de vezes em que a função bin é chamada? floor(log2(n))
![Page 53: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/53.jpg)
53
Recursividade é uma das coisas mágicas e interessantes em Programação.
![Page 54: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/54.jpg)
54
Atividade em aula
![Page 55: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/55.jpg)
55
Atividade 1
Qual é o resultado da execução das seguintes funções para n=5?
Resposta de conta1 para n=554321
Resposta de conta2 para n=512345
![Page 56: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/56.jpg)
56
Atividade 2
Indique o que devolvem as funções F1 e F2 para valores de: a=2, k=5.Construa sua representação matemática recursiva.Descreva em português o que calcula cada função.
Ambas as funções calculam a^k .Para a=2, e b=5 a funçãodevolve 32.
F2 é mais eficiente!
![Page 57: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/57.jpg)
57
Atividade 3
Descreva em português o que calcula a função M.Qual o número total de comparações?Bônus: Escreva uma versão iterativa da função M.
A função M, dada um vetor v[0,…,n-1] de n elementos devolve o menor valor contido em v.
Número de comparações = n
![Page 58: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/58.jpg)
58
Exercício 03: Função M
Versão iterativa
![Page 59: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/59.jpg)
59
Recursão
Uma função recursiva é aquela que se chama a si mesma (obrigatoriamente)?
![Page 60: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/60.jpg)
60
Recursão
Uma função recursiva não necessariamente é aquela que se chama a si mesma
![Page 61: MC3305 - Algoritmos e Estruturas de Dados II](https://reader034.fdocuments.in/reader034/viewer/2022042723/585c94831a28abed218e9fd4/html5/thumbnails/61.jpg)
61
Análise de algoritmos recursivos
Para fazer a análise é necessário obter a relação de recorrência.A fórmula fechada (resolução) da recorrência pode ser obtida por diferentes abordagens, por exemplo:
Árvore de recorrênciaMétodo mestreFunções geradoras