“Conocimiento Programación>Lenguajes De Programación

Cómo convertir Recursivo para iterativa

2014/7/6
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 puedo aprender Pseudocódigo y Diagramas de flujo
Cómo convertir Enum a la lista
Cómo desmontar Hex
Cómo construir con Regex
Access 2007 Scripts
Cómo conseguir un objeto se mueva con el cursor en NetBeans
What is the Malayalam meaning of an English word you are working in computer shoppe?
Cómo devolver una cadena a partir de una clase
Conocimiento de la computadora © http://www.ordenador.online