Rodolfo

457 palavras 2 páginas
Recursividade
Recursividade é a propriedade que uma função tem de chamar a si própria, diretamente ou não. Isto é usado para simplificar um problema. Exemplo mais comum de recursão: função Fatorial
Caso base 0!=1 1!=1.0!=1 Regra Geral: 2!=2.1!=2.1 n ! = n * (n-1) ! 3!=3.2!=3.2.1 fat(n) = n * fat(n-1) 4!=4.3!=4.3.2.1
1 2

Estrutura de Dados I
Recursão
Conceitos Iniciais

Recursividade
Ex: Fatorial de 4 n = 4! = 4 . 3! Caso base 3! = 3 . 2! 2! = 2 . 1! 1! = 1 . 0! 0! = 1 1! = 1 . 1 2! = 2 . 1 3! = 3 . 2 4! = 4 . 6 n = 24
3

Recursividade
Como uma função recursiva pode chamar a si mesma indefinidamente, é essencial a existência do caso base, ou condição de parada. No caso do fatorial, o caso base é o zero, cujo valor do fatorial é 1. A partir dele, são encontrados todos os outros valores. int fatorial(int n) { if (n = 0) // caso base, onde a recursão return 1; // caso indutivo else return ( n * fatorial( n-1 ) ); } acaba 4

Como um programa é executado...

Como um programa é executado...
• Área dinâmica da memória do programa Heap • Memória que foi requisitada dinâmicamente pelo programador (malloc/new)

• Quando um programa é executado, o sistema operacional aloca para este uma área na memória do sistema • Internamente, tal segmento de memória é dividido em duas partes: •Pilha

Área da memória alocada

• Área estática da memória do programa

•Heap
5

Pilha

• Variáveis globais/locais • Chamada de métodos/funções
6

Chamada de Funções
Quando uma função é chamada, esta é inserida na pilha e executada. Por isso, chamar uma função torna-se mais lento do que escrever o código diretamente. main() { func1(); } func1() { func2(); } main ( ) func1 ( ) func2 ( ) ... }
7

Funções Recursivas
A cada chamada de uma função recursiva, ela é inserida na pilha e novas variáveis são alocadas. fat(int n) { if (n == 0) return 1; else return n * fat(n-1); pilha fat ( 3 ) fat ( 2 ) fat ( 0 ) fat ( 1 ) fat ( 2 ) fat ( 3 )
8

topo da

Relacionados

  • Rodolfo
    563 palavras | 3 páginas
  • Rodolfo
    695 palavras | 3 páginas
  • rodolfo
    1248 palavras | 5 páginas
  • Rodolfo
    4638 palavras | 19 páginas
  • Rodolfo
    858 palavras | 4 páginas
  • Rodolfo
    23431 palavras | 94 páginas
  • Rodolfo
    460 palavras | 2 páginas
  • RODOLFO
    391 palavras | 2 páginas
  • Rodolfo
    1842 palavras | 8 páginas
  • rodolfo
    332 palavras | 2 páginas