Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)
-
Upload
leinylson-fontinele -
Category
Education
-
view
79 -
download
4
Transcript of Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)
![Page 1: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/1.jpg)
# Estrutura de Dados #Aula 08 – Recursão
(conceito, utilização, exemplos)Prof. Leinylson Fontinele Pereira
![Page 2: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/2.jpg)
Na aula anterior...
Alocação Dinâmica de Memória
13:08 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 3: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/3.jpg)
Introdução
13:08 3 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 4: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/4.jpg)
O que vamos aprender?
Recursividade
# Conceito
# Utilização
13:08 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 5: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/5.jpg)
Vamos começar?
13:08 5 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 6: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/6.jpg)
13:08
Recursividade
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 7: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/7.jpg)
13:08
O método de recursividade deve ser utilizado paraavaliar uma expressão aritmética na qual umprocedimento pode chamar a si mesmo, ou seja, arecursividade consiste em um método que, para quepossa ser aplicado a uma estrutura, aplica a si mesmopara as subestruturas componentes
Aula 08 – Recursão (conceito, utilização, exemplos)
Definição de Recursividade
![Page 8: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/8.jpg)
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Exemplos de Recursividade
![Page 9: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/9.jpg)
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Exemplos de Recursividade
![Page 10: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/10.jpg)
Exemplo de Recursão
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 11: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/11.jpg)
Frases Célebres
13:08
“To understand recursion, we must first understand recursion”
“Ao tentar resolver o problema, encontrei obstáculos dentro de obstáculos. Por isso, adotei uma solução recursiva”
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 12: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/12.jpg)
Recursividade
13:08
O poder da recursão deve-se à possibilidade de definição de umconjunto infinito de objetos por meio de uma formulação finita.
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.
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 13: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/13.jpg)
Algoritmo Recursivo
13:08
Para resolver um tal problema é natural aplicar o seguinte método:
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 14: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/14.jpg)
Torre de Hanoi
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 15: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/15.jpg)
Torre de Hanói: Duas discos
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 16: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/16.jpg)
Torre de Hanói: Três discos
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 17: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/17.jpg)
Torre de Hanoi
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 18: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/18.jpg)
Torre de Hanoi
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 19: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/19.jpg)
Fatorial de um número
13:08
Considere a função fatorial: fatorial = n!
Para um número inteiro não-negativo arbitrário
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 20: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/20.jpg)
Fatorial de um número
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 21: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/21.jpg)
Somatório Iterativo de números
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Dados dois número inteiros, 𝑛 e 𝑘, crie uma função iterativa para calcular aseguinte somatória:
![Page 22: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/22.jpg)
Somatório Recursivo de números
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Dados dois número inteiros, 𝑛 e 𝑘, crie uma função recursiva para calcular aseguinte somatória:
![Page 23: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/23.jpg)
Somatório Recursivo de números
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 4 𝑒 𝑘 = 99
![Page 24: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/24.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 4 𝑒 𝑘 = 99
![Page 25: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/25.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 3 𝑒 𝑘 = 99
![Page 26: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/26.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 2 𝑒 𝑘 = 99
![Page 27: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/27.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 1 𝑒 𝑘 = 99
![Page 28: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/28.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 0 𝑒 𝑘 = 99
![Page 29: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/29.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 4 𝑒 𝑘 = 99
![Page 30: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/30.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
![Page 31: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/31.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
![Page 32: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/32.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
![Page 33: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/33.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
![Page 34: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/34.jpg)
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 35: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/35.jpg)
13:08 35
Perceberam a diferença?
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 36: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/36.jpg)
Recursivo vs Iterativo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 37: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/37.jpg)
Função recursiva
13:08
Uma função recursiva é definida em seus próprios termos
Toda função pode ser escrita como função recursiva sem o uso deinteração (laços)
Reciprocamente, qualquer função recursiva pode ser descritaatravé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.Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 38: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/38.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Os números de Fibonacci foram propostos por Leonardo di Pisa (Fibonacci), em1202, como uma solução para o problema de determinar o tamanho dapopulação de coelhos
![Page 39: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/39.jpg)
Sequência de Fibonacci e a Natureza
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 40: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/40.jpg)
Sequência de Fibonacci e a Natureza
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 41: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/41.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 42: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/42.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 43: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/43.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 44: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/44.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 45: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/45.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
𝐹𝑖𝑏 100 ?
![Page 46: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/46.jpg)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 47: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/47.jpg)
13:08 47
Quantos dígitos binários são necessários para representar
um numero decimal?
Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 48: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/48.jpg)
Número de dígitos binários
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Crie uma função que calcula o número mínimo de dígitos binários pararepresentar um número inteiro decimal positivo𝑛
![Page 49: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/49.jpg)
Número de dígitos binários
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 50: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/50.jpg)
Vantagens e Desvantagens
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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 dechamadas
Dificuldades na depuração de programas recursivos, especialmente se a recursãofor muito profunda
![Page 51: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/51.jpg)
Concluindo...
13:08 52 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 52: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/52.jpg)
Atividade!
13:08 53 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 53: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/53.jpg)
Parece mágica, mas é programação...
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Qual é o resultado da execução das seguintes funções para𝑛 = 5?
![Page 54: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/54.jpg)
Nesta aula aprendemos...
Recursividade
# Conceito
# Utilização
13:08 Aula 08 – Recursão (conceito, utilização, exemplos)
![Page 55: Estrutura de Dados - Aula 08 - Recursão (conceito, utilização, exemplos)](https://reader030.fdocument.pub/reader030/viewer/2022020213/5876d9421a28ab1d238b6681/html5/thumbnails/55.jpg)
Material: https://sites.google.com/site/leinylsonuespi
13:08
Material baseado nas aulas de:
Recursão/Recursividade, Prof. Jesús P. Mena-Chalco
Aula 08 – Recursão (conceito, utilização, exemplos)