Tecnología

Inicio

Usos de una función recursiva

La recursividad puede ser una técnica útil para los programadores. Las funciones recursivas, a veces conocido como "métodos" en lenguajes como Java, son funciones que se llaman a sí mismos. Hay ciertas situaciones en las que las funciones recursivas son particularmente adecuados. Sin embargo, puede ser difícil de aplicar correctamente una función recursiva, por lo que sólo debe utilizarse cuando sea apropiado. Las funciones recursivas a menudo son útiles cuando se trata de estructuras de datos y actividades matemáticas.

Clasificación

Cuando los datos de los programas de modelo, ya sea internamente o importados de una fuente tal como una base de datos, a menudo se necesita para solucionar el problema. Algunas estructuras de datos no están ordenados, lo que significa que los elementos no están dispuestos en orden consecutivo. Por ejemplo, un programa podría contener una matriz con cadenas de texto en su interior. Para ordenar la matriz de modo que las cadenas de texto están dispuestos en orden ascendente en orden alfabético, el programa puede necesitar utilizar un algoritmo. Combinar tipo es un ejemplo de un método recursivo para este proceso. Combinar las obras ordenar dividiendo continuamente la matriz en dos, cada mitad de clasificación antes de la fusión de nuevo en una sola.

buscando

Cuando los datos almacenar programas en estructuras de datos, a menudo necesitan para localizar elementos particulares que utilizan algoritmos de búsqueda, que pueden beneficiarse de la recursividad. Por ejemplo, si una matriz es el almacenamiento de valores en orden alfabético, el programa puede utilizar la recursividad para averiguar cuál es la posición de un determinado elemento se encuentra en. La búsqueda binaria implica el programa de comprobación continuamente un elemento a medio camino a través de la matriz. Si el elemento coincide con el que el programa está buscando, puede parar. Si no es el elemento en cuestión, el algoritmo puede comprobar si es mayor o menor que el elemento de búsqueda. Si es mayor, el algoritmo puede eliminar la mitad superior de la estructura más allá del elemento de corriente, ya que el elemento de búsqueda debe estar en la mitad inferior. Este proceso continúa hasta que el elemento se encuentra.

Estructuras de datos

Al decidir sobre algoritmos, los programadores deben preguntar si una función iterativo que no es recursivo podría resolver la tarea, así como uno recursivo. Por ejemplo, en ciertas estructuras de datos, un programa tendrá que buscar a través de una forma lineal hasta que se localiza un elemento de búsqueda. En este caso no hay otra alternativa que iterar a través de la estructura. algoritmos recursivos simplifican la tarea con cada iteración, la comprobación para ver si ha llegado el punto final, a continuación, llamar a la función de nuevo si no lo ha hecho. Para demostrar las similitudes entre la recursividad e iteración, el siguiente método Java de ejemplo muestra un método esquema recursivo:
pública processNumber void (int myNum) {
si (myNum> 100) de retorno;
otra cosa processNumber (myNum * 5);
}

Una implementación alternativa iterativo de esto sería la siguiente:
int anum = 3;
mientras que (anum <100) {anum * = 5; }

En este caso la versión iterativo es más simple.

Las tareas matemáticas

Algunas tareas de procesamiento matemático se adapta particularmente bien a las funciones recursivas. secuencias de Fibonacci demuestran procesamiento recursivo. Cada número en una secuencia de Fibonacci es la suma de los dos anteriores. El siguiente ejemplo de código Java se muestra una función para encontrar un número de Fibonacci:
public int getFibonacci (int FNUM) {
si (FNUM <= 1) volver FNUM;
más volver getFibonacci (FNUM-1) + getFibonacci (FNUM-2);

}

El método devuelve el número de la secuencia Fibonacci en la posición indicada por un parámetro entero cuando el código de la llama, como sigue:
getFibonacci (8);

Esto devolvería el octavo número. (Véanse las referencias 3, 4, 5)