estrutura de dados - aula 08 - recursão (conceito, utilização, exemplos)
TRANSCRIPT
# Estrutura de Dados #Aula 08 – Recursão
(conceito, utilização, exemplos)Prof. Leinylson Fontinele Pereira
Na aula anterior...
Alocação Dinâmica de Memória
13:08 Aula 08 – Recursão (conceito, utilização, exemplos)
Introdução
13:08 3 Aula 08 – Recursão (conceito, utilização, exemplos)
O que vamos aprender?
Recursividade
# Conceito
# Utilização
13:08 Aula 08 – Recursão (conceito, utilização, exemplos)
Vamos começar?
13:08 5 Aula 08 – Recursão (conceito, utilização, exemplos)
13:08
Recursividade
Aula 08 – Recursão (conceito, utilização, exemplos)
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
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Exemplos de Recursividade
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Exemplos de Recursividade
Exemplo de Recursão
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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)
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)
Algoritmo Recursivo
13:08
Para resolver um tal problema é natural aplicar o seguinte método:
Aula 08 – Recursão (conceito, utilização, exemplos)
Torre de Hanoi
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Torre de Hanói: Duas discos
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Torre de Hanói: Três discos
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Torre de Hanoi
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Torre de Hanoi
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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)
Fatorial de um número
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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:
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:
Somatório Recursivo de números
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 4 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 4 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 3 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 2 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 1 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 0 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Para 𝑛 = 4 𝑒 𝑘 = 99
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Retorno do processamento
Somatório Recursivo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
13:08 35
Perceberam a diferença?
Aula 08 – Recursão (conceito, utilização, exemplos)
Recursivo vs Iterativo
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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)
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
Sequência de Fibonacci e a Natureza
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Sequência de Fibonacci e a Natureza
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
𝐹𝑖𝑏 100 ?
Números de Fibonacci
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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)
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𝑛
Número de dígitos binários
13:08Aula 08 – Recursão (conceito, utilização, exemplos)
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
Concluindo...
13:08 52 Aula 08 – Recursão (conceito, utilização, exemplos)
Atividade!
13:08 53 Aula 08 – Recursão (conceito, utilização, exemplos)
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?
Nesta aula aprendemos...
Recursividade
# Conceito
# Utilização
13:08 Aula 08 – Recursão (conceito, utilização, exemplos)
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)