“Conocimientos Programación>Programación Java

Problemas recursividad en Java

2011/6/27
En un programa Java, un método recursivo es un método que se llama . Métodos recursivos pueden ayudar a los programadores a diseñar un fragmento de código para simplificar un problema. Métodos recursivos a menudo parecen ser conciso , pero la creación de una función recursiva eficaz puede ser muy difícil . Al igual que con los bucles y otras estructuras de control de Java, los desarrolladores tienen que trabajar a través de lo que sucederá cuando una función recursiva ejecuta. Métodos recursivos causan una serie de problemas comunes cuando no está estructurado correctamente. Problema Solución Fallo

programadores usan métodos recursivos para resolver problemas particulares. Naturalmente, un método recursivo no proporcionará funcionalidad útil si no resuelve el problema que fue diseñado para . Esto sucede a veces cuando el programador ha optado por utilizar una función recursiva en los que no es apropiado . En general , un método iterativo es ideal para situaciones en las que necesita para resolver un problema usando pasos iterativos . Cada vez que el método se ejecuta , debe hacer que el problema más simple y traer a su programa de un paso más cerca de resolverlo. El resultado final del método recursivo debe ser la solución a su problema, por ejemplo, la localización de un elemento en un objeto de colección de datos.
No End Case

Para una función recursiva para trabajar sin que su programa atrapado en un bucle infinito , debe tener un caso extremo bien definido . Esto significa que debe haber una ejecución final , en lugar de ejecutar el método sin fin . Los programadores suelen implementar esto usando sentencias condicionales dentro del método , como en el siguiente ejemplo : public void doItRecursively (int num) {if (num < 1 ) return; else { System.out.println ( num) ; doItRecursively (num /2 ) ;} }

Para llamar a esta función , un programa puede utilizar el siguiente código : doItRecursively ( 10 ) ;

en este caso la función se ejecutará cinco veces , salir en la quinta iteración. Cada vez que se ejecuta el método que se acerca más a la situación final , que el condicional if comprueba para . Si el método no contenía la sentencia condicional , sería repetir interminablemente .
No Recursión

La cuestión en contra de un método iterativo bucle sin fin es un método eso no quiere iterar en absoluto. Esto también ocurre cuando la sentencia condicional no está estructurado correctamente. Por ejemplo , dado el método " doItRecursively " , la siguiente instrucción if alterado podría causar un problema : si (num > 0 ) de retorno;

Si el método sólo se llama con valores enteros positivos como el parámetro , su contenido nunca se repetirá como se habrá alcanzado el punto final de inmediato.
método incorrecta llamadas

Si el programador llamar a un método recursivo no tiene una idea clara de su función , se puede utilizar de una manera que causa iteración sin fin o sin iteración . Por ejemplo, el siguiente código condicional alteración en el método podría fácilmente ser llamado correctamente : if ( num < 0 ) return;

Si el método sólo se llama con los valores de parámetros enteros positivos , nunca llegar a este punto final y se producirá un bucle infinito. Métodos recursivos pueden causar muchos de los mismos peligros como bucles , por lo que no requieren la práctica de su aplicación efectiva.

Programación Java
Cómo pasar por referencia en Java
Cómo quitar un elemento de MIDP 2.0 Programáticamente
Cómo crear un servicio web utilizando Axis
Java Teoría y Práctica : Colección de basura en el 1.4.1 JVM
Cómo quitar el árbol binario de Java
Cómo detectar un KeyPress en Java
Cómo instalar un controlador de Axis2
¿Por qué es la anotación Java Ignorado en el Código
Conocimientos Informáticos © http://www.ordenador.online