“Conocimientos Programación>Lenguajes De Programación

Cómo convertir Recursivo para iterativa

2015/10/8
algoritmos recursivos son los algoritmos que pueden llamarse a sí mismos como parte de su solución. Estas funciones suelen trabajar en los problemas que contienen una serie de idéntica sub-problemas , al igual que el recorrido del árbol o el cálculo factorial . Llamar varias veces la misma función una y otra puede hacer un trabajo lento , a pesar de que podría hacer la codificación simple. Para aumentar la velocidad de ejecución , puede volver a crear algoritmos recursivos , tales como el algoritmo factorial , en un algoritmo ligeramente más complicado iterativo utilizando bucles que se ejecutarán mucho más rápido . Instrucciones
1

Analizar el algoritmo recursivo . En este ejemplo , utilizará la solución recursiva para el problema factorial :

int factorial ( int hecho ) {

if ( hecho == 0 ) {return 1 ;} else { hecho de devolución * factorial ( hecho - 1 ) ;} }
2

Decidir si los argumentos de la función se llevará a cabo en variables. En el ejemplo factorial , los resultados de el factorial se pueden almacenar en una variable " total_factorial " para la duración de cualquier iteración . Este ejemplo muestra el algoritmo factorial recursiva y la variable que se utilizará para el argumento recursivo :

total_factorial int = 0 :
3

Determinar una estructura de bucle . En C + + , por ejemplo , el bucle ", mientras que " funciona bien con iteraciones que tienen una longitud indeterminada . " Para " bucles , por otro lado , funciona bien cuando un bucle irá por una duración estricta , representado por un número entero de algún tipo . Para el ejemplo factorial , un bucle "for" va a funcionar bien :

int factorial = 5 ; total_factorial int = 0 ;
4

Determinar detener condiciones. Por lo general , como en el ejemplo factorial , la recursión terminará cuando se cumpla una condición . En un bucle interative , como el bucle , es muy útil saber de antemano . Ya sabes que en encontrar el factorial de un número " n " que va a repetir n- 1 veces ( excepto el cero ) , se puede empezar a la una y se extenderán hasta el número factorial :

for (int i = 1 ; i < = factorial , i + + ) { if ( i == 1 ) { total_factorial = 1 ;} else { totales factorial * = i ;} }

Lenguajes De Programación
Cómo utilizar las Ideas y Descripción con ColdFusion
Guía de color HTML para Grey -blue
Cómo crear un disco a partir de ISO
Cómo implementar un árbol binario utilizando Pascal
Cómo ordenar REXX Variables Madre
Cómo realizar la prueba de PLC Ladder Logic
¿Cómo se utiliza un dispositivo de probabilidad gaussiana
My Windows Mobile no se abre ashx
Conocimientos Informáticos © http://www.ordenador.online