Home
|
Você está em:
Computadores
computadores
>
erro de registro ruim
computadores
>
erro de registro ruim
Categorias Populares
Celular
Computadores
Facebook
Minecraft
Video
Software
Jogos
Dicas Jogos
PayPal
Microsoft Office
Skype
iTunes
Youtube
Android
iPhone
iPad
Fotos
Programas
Google Chrome
Internet Explorer
Firefox
Mais
Antivirus
Viagem
Combat Arms
MSN
Hotmail
Celebridade
Tablet
Windows 8
TV Audio
Ebay
Fitness
Ciências
eBuddy
Gmail
Habbo
Windows 7
Tumblr
Beleza
Linkedin
Musica
PS3
Saude
Mac
Photoshop
Dieta
Instagram
Driver
Twitter
Club Penguin
XBox
Qual e a diferenca entre iterativa e recursiva funcoes?
comentários
Ver melhor comentário
Obrigado Claudio!
Resposta
Funções recursivas: é uma função que parcialmente definido por si só e consiste em alguns simples caso com uma resposta conhecida. Exemplo: número de Fibonacci seqüência, função fatorial, classificação rápida e muito mais.
Algumas das funções/algoritmos podem ser representadas de forma iterativa e alguns não podem.
Funções iterativas: loop baseiam imperativa repetição de um processo (em contraste com a recursão que tem mais de abordagem declarativa).
Agora vamos pensar sobre quando é uma boa idéia usar recursão e porquê. Em muitos casos, haverá uma escolha: muitos métodos podem ser gravados, com ou sem o uso de recursão.
P: a versão recursiva geralmente é mais rápido?
R: não - é geralmente mais lento (devido a sobrecarga de manter a pilha)
Q: será que a versão recursiva geralmente usam menos memória?
R: não - geralmente usa mais memória (para a pilha).
P: então por que usar recursão?
R: às vezes é muito mais simples de escrever a versão recursiva (mas vamos precisar esperar até que nós discutimos árvores para ver bons exemplos...)
Aqui estão alguns exemplos onde a recursão torna as coisas um pouco mais claras, embora no segundo caso, o problema de eficiência o torna uma escolha ruim.
Fatorial
Fatorial pode ser definido como segue:
fatorial de 0 é 1
fatorial de N (para N > 0) é N N-1 ... 3 2 1
ou:
fatorial de 0 é 1
fatorial de N (para N > 0) é N fatorial (N-1)
(Note-se que fatorial está definida para números negativos).
A primeira definição leva a uma versão iterativa do fatorial:
int fatorial (int N) {
se (N = = 0) retornar 1;
int tmp = N;
para (int k = N-1; k > = 1; k-) tmp = tmp k;
retorno (tmp);
}
A segunda definição leva a uma versão recursiva:
int fatorial (int N) {
se (N = = 0) retornar 1;
mais retorno (Nfactorial(N-1));
}
A versão recursiva é
um pouco mais curto,
um pouco mais claro (mais perto da definição matemática),
um pouco mais lento
Porque a versão recursiva faz com que um registro de ativação para ser enviado para a pilha de execução para cada chamada, também é mais limitada do que a versão iterativa (não, com um erro de "estouro de pilha"), para valores grandes de N.
Espero que isso ajude
Cheers:)
1
Inscrever
- receber um email se alguém adiciona novas respostas/comentários
Subscrever
Email*
Verificação*
Digite os caracteres que aparecem na imagem por isso sabemos que você é humano!
Comentários
Todos
Entre na Conversa +
Matilde
na 3 Ago 2023
5
A diferença entre funções iterativas e recursivas está na forma como elas são executadas. Funções iterativas usam loops, enquanto funções recursivas chamam a si mesmas para resolver um problema. Funções iterativas geralmente ocupam menos memória, pois não armazenam chamadas sucessivas na pilha de execução, enquanto funções recursivas podem ocupar mais memória devido à pilha de execução crescente. Além disso, funções iterativas tendem a ser mais eficientes em termos de desempenho, mas as funções recursivas podem ser mais fáceis de entender e desenvolver em certos casos. Portanto, a escolha entre usar uma função iterativa ou recursiva dependerá do problema específico que você está tentando resolver e das necessidades de desempenho do seu programa. Espero que isso esclareça a diferença entre os dois tipos de funções! Se tiver mais alguma dúvida, estou à disposição para ajudar.
Responder
Mais como isso
computadores
>
erro de registro ruim
Outras Respostas Populares
E possivel falar com a mesma pessoa no omegle novamente?
rede sem fio nao pode acessar http://192.168.10.1?
Eu mudei meu programa' padrao' e agora nao consigo abrir todos os outros programas?
Como mudar meu e-mail ou numero de telefone no meu facebook..?EU ESCOLHO A MELHOR RESPOSTA EM 5 MIN..
Por que diz "Whatsapp" eu sou "online" quando nunca acessei o app?
Como voltar um instagram hackeada?
Algumas impressoras exigem tinta para digitalizar?
Esqueci minha senha e o e-mail para o meu snapchat como posso recuperar minha conta?
Laptop tela fica preta, ao conectar o cabo HDMI a TV?
Facebook Checkpoint erro / erro 500 / erro de Login?
Por nao que meu video downloads do Limewire tem nenhum som audio?
Eu nao consigo arrastar as fotos para photoshop!! Qualquer ajuda?
Alguem atualmente executando o Windows 98 deve comprar um novo computador com XP ou Vista?
E ruim deixar o computador ligado 24-7?
Qual e o melhor campeao em League of Legends?
Usuários da rede social
Estas pessoas adicionaram comentários ou respostas recentemente
Topo da página
Home
Terms
Copyright © Accelerated Ideas 2005-2024
All rights reserved
Home