Programação  
 
Conhecimento computador >> Programação >> Programação De Computador Idiomas >> 
Como converter recursivo para iterativo
algoritmos recursivos são aqueles algoritmos que podem chamar a si mesmos como parte de sua solução. Estas funções , muitas vezes trabalhar em problemas que contêm uma série de sub-problemas idênticos , como passagem de árvore ou cálculo fatorial. Repetidamente chamar a mesma função repetidamente pode fazer o trabalho lento, embora possa tornar a codificação mais simples. Para aumentar a velocidade de execução, você pode recriar algoritmos recursivos , como o algoritmo de fatorial , em um algoritmo iterativo um pouco mais complicado usando loops que serão executadas muito mais rápido. Instruções
1

Analisar o algoritmo recursivo . Neste exemplo , você vai usar a solução recursiva para o problema fatorial :

int fatorial (int fato ) {

if ( fato == 0 ) {return 1 ;} else { return fato * fatorial ( fato - 1) ;}}
2

Decida se os argumentos da função pode ser realizada em variáveis. No exemplo fatorial , os resultados do fatorial pode ser armazenado em uma variável " total_factorial " para a duração de qualquer iteração . Este exemplo mostra o algoritmo de fatorial recursiva ea variável a ser usado para o argumento recursiva :

int total_factorial = 0:
3

Determinar uma estrutura de loop. Em C + + , por exemplo , o " , enquanto " ciclo funciona bem com iterações que têm um comprimento indeterminados . " Por " laços , por outro lado , funciona bem quando uma laçada vai para uma duração restrita, representada por um número inteiro de algum tipo . Para o exemplo fatorial , um laço "for" vai funcionar bem :

int fatorial = 5; int total_factorial = 0;
4

Determinar condições vacilantes . Normalmente, como no exemplo fatorial , a recursão terminará quando uma condição for satisfeita. Em um loop interativa , como o loop for, é bom saber antes da mão. Como você sabe que para encontrar o fatorial de um número " n" que você vai interagir n- 1 vezes (excluindo o zero ), você pode começar em um e correr até que o número fatorial :

for (int i = 1; i < = fatorial ; i + +) {if ( i == 1) { total_factorial = 1; } else { fatorial total de * = i; }}

Anterior :

Próximo : No
  Os artigos relacionados
·Implementação em Matlab do Método de Monte Carlo 
·Como extrair uma tabela de DMP 
·É Tidy Script Malware 
·A matriz ColdFusion não está limpando 
·As Melhores Práticas para os lotes de cálculos matemá…
·O que é Interleave Codificação 
·Como escrever uma associação externa no AFD em WebFOC…
·Como usar um anemômetro em BASIC Stamp Um 
·Como converter dados SQR a ETL 
·Como Escrever dependências externas para um projeto de…
  Artigos em destaque
·Por que não posso ver minha Xcode iPhone 
·Como construir uma fila para fora de uma lista de 
·Como converter um inteiro para um personagem em C + + 
·O sinal da função em Fortran 
·Como fechar um loop para usar o C + + 
·Como limpar um buffer de entrada em C + + 
·Como identificar um usuário do Windows com ASP 
·Como fazer arquivos no MFC 
·Como criar um conjunto de resultados de Executar em um …
·Como projetar N camadas camadas de acesso a dados usand…
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados