Sei sulla pagina 1di 7

INSTITUTO TECNOLGICO DE TUXTEPEC

ESTRUCTURA DE DATOS

L.I. TOMAS TORRES RAMREZ

UNIDAD 2

RECURSIVIDAD

PRESENTA: OSVALDO APOLINAR GONZALEZ

ING. EN INFORMTICA

3ER SEMESTRE GRUPO A

TUXTEPEC OAXACA A 14 DE SEPTIEMBRE DE 2011

CONTENIDO
-Concepto de recursividad -Como solucionar problemas recursivos -Divide y vencers: Un problema complejo se divide en otros problemas mas sencillos (del mismo tipo). - Funcionamiento de un algoritmo recursivo - Diseo de algoritmos recursivos - Recursividad vs Iteracin - Las definiciones recursivas de funciones en matemticas - Ejemplos

RECURSIVIDAD
La recursividad consiste en realizar una definicin de

un concepto en trminos del propio concepto que se est definiendo. Forma parte del repertorio para resolver problemas en Computacin y es de los mtodos ms poderosos y usados. Los algoritmos recursivos ofrecen soluciones estructuradas, modulares y elegantemente simples. La recursividad es un concepto fundamental en matemticas y en

computacin. Una definicin recursiva dice cmo obtener conceptos nuevos empleando el mismo concepto que intenta describir.

mbitos de aplicacin: -General -Problemas cuya solucin se puede hallar solucionando el mismo problema pero con un caso de menor tamao. Razones de uso: -Problemas casi irresolubles con las estructuras iterativas. -Soluciones elegantes. -Soluciones ms simples.

Como solucionar problemas recursivos: Divisin sucesiva del problema original en pequeos, del mismo tipo que el inicial. uno o varios ms

Se van resolviendo estos problemas ms sencillos. Con las soluciones de stos se problemas ms complejos. construyen las soluciones de los

Divide y vencers: Un problema complejo se divide en otros problemas


mas sencillos (del mismo tipo). Solo tenemos que conocer la solucin no recursiva para algn caso sencillo (denominado caso base) y hacer que la divisin de nuestro problema acabe recurriendo a los casos base que hayamos definido.

Funcionamiento de un algoritmo recursivo:


Se descompone el problema en problemas de menor complejidad (algunos de ellos de la misma naturaleza que problema original). Se resuelve el problema para, al menos, un caos base. Se compone la solucin al final a partir de las soluciones parciales que se van obteniendo.

Ejemplo: static int potencia (int x, int n) { if (n==0) //caso base// return 1; else //caso general// return x * potencia (x, n-1); }

Diseo de algoritmos recursivos:


1.- Resolucin de problemas para los casos base: -sin emplear recursividad -siempre debe existir algn caso base. 2.- Solucin para el caso general: -Expresin de forma recursiva -Pueden incluirse pasos adicionales (para combinar las colusiones parciales). Siempre de debe avanzar hacia un caso base: Las llamadas recursivas simplifican el problema y, en ultimas instancias los casos base nos sirven para obtener la solucin.

-Los casos base: Corresponden a situaciones que se puede resolver con facilidad. - Los dems casos se resuelven recurriendo, antes o despus, a alguno (s) de los caso base. De esta forma, podemos resolver problemas complejos que serian muy difciles de resolver directamente.

Recursividad vs Iteracin
Aspectos que hay que considerar al decidir como implementar la solucin a un problema (de forma iterativa o de forma recursiva): -La carga computacional (tiempo de CPU y espacio en memoria) asociado a las llamadas recursivas. -La redundancia (algunas soluciones recursivas resuelven el mismo problema en repetidas ocasiones). -La complejidad de la solucin (en ocasiones, la solucin iterativa es muy difcil de encontrar). -La concisin, legibilidad y elegancia del cdigo resultante (la solucin recursiva del problema puede ser mas sencilla).

Ejemplo: versin mejorada del calculo de x static int potencia (int x, int n) { int aux; if (n==0) { return 1; } else { aux = potencia (x, n/2); if (n%2 == 0) return aux * aux; else return x * aux * aux; } }

LAS DEFINICIONES RECURSIVAS DE FUNCIONES EN MATEMTICAS Tienen como argumentos nmeros enteros, se llaman relaciones de recurrencia. Forma de una ecuacin de recurrencia: coar +c1ar-1 + c2ar-2 + ....+ ckar-k = f(r) Funcin matemtica discreta donde ci son constantes, es llamada una ecuacin de recurrencia de coeficientes constantes de orden k, condicionada a que c0 y ck = 0. Una definicin recursiva dice cmo obtener conceptos nuevos empleando el mismo concepto que intenta definir. El poder de la recursividad es que los procedimientos o conceptos complejos pueden expresarse de una forma simple. Un razonamiento recursivo tiene dos partes: la base y la regla recursiva de construccin. La base no es recursiva y es el punto tanto de partida como de terminacin de la definicin.

Ejemplo simple de recursividad: a) Clculo del factorial de un nmero, por ejemplo, 5. Descomposicin del problema: 5! = 5 * 4! 4! = 4 * 3! 3!= 3 * 2! 2! = 2 * 1! 1! = 1 * 0! Solucin conocida o directa 0! = 1 Resolucin de problemas mas complejos a partir de otros mas simples: 1! = 1*0! = 1 2! = 2*1! = 2 3! = 3*2! = 6 4! = 4*3! = 24 5! = 5*4! = 120

Ejemplos: Los nmeros naturales se pueden definir de la siguiente forma: 0 es un Nmero natural y el sucesor de un nmero natural es tambin un nmero natural. El factorial de un nmero natural n, es 1 si dicho nmero es 0, o n multiplicado por el factorial del nmero n-1, en caso contrario. La n-sima potencia de un nmero x, es 1 si n es igual a 0, o el producto de x por la potencia (n-1) n-sima de x, cuando n es mayor que 0.

Potrebbero piacerti anche