Convertir un algoritmo recursivo en iterativo
1 Analizar el algoritmo recursivo . En este ejemplo , utilizará la solución recursiva para el problema factorial :
int factorial ( int h ) {
if ( h== 0 ) {
return 1 ;
}
else {
h de devolución * factorial ( h - 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 :
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 :
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 :
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 ;
}
}
No hay comentarios:
Publicar un comentario