Está en la página 1de 3

Complejidad http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r4890.PDF Diseo https://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r48216.

PDF

Recursividad en el diseo

4.5 Recursividad en Diseo Un procedimiento recursivo es aquel que se llama a si mismo, para poder funcionar tiene que tener una condicin de salida que de el numero de veces que se va a llamar a si mismo el procedimiento. La recursividad en diseo se refiere a la manera de cmo representar los procedimientos recursivos al momento de disear los programas. Dependiendo del mtodo que utilicemos para disear la representacin grafica de la recursividad va a ser diferente sin embargo el procedimiento va a ser similar ya que el fin es el mismo poner una condicin que nos diga si llamamos al mtodo o que nos mande terminarlo. Un ejemplo en una funcin genrica seria este:
METODO1 { Procedimiento x; Condicin ( ) { Llamada al metodo1; } Fin; }

En un diagrama seria algo as:

NOTA: Estos son dos ejemplos en ambos utilizamos una condicin, pero se pueden utilizar ciclos siempre asegurndonos de que nos den salida en algn momento. Lo importante y que tenemos que tomar en cuenta es que la si se cumple el criterio para llamar el procedimiento hay que apuntar a el inicio del mtodo, y al no cumplirse debe apuntar al siguiente paso en el procedimiento o al final o viceversa. Ejemplo: Disear un programa que despliegue el contenido de un arreglo el siguiente arreglo: { a, e, i, o, u} Seudo cdigo: 1. Creamos la forma que contendr una listbox para despliegue. 2. Creamos el arreglo que contendr los elementos (vocales) 3. Despus creamos el mtodo despliegue. El cual contendr: a. Un ciclo for (int i=0;i4;i++) dentro del cual se har el despliegue en el ndice i del arreglo vocales b. llamara al mtodo despliegue. 5. En el constructor mandamos llamar al mtodo despliegue.

Y listo al abrir nuestro programa vamos a desplegar dentro del listbox el arreglo mediante la recursividad. Para ver un programa visual de recursividad ver el tema recursividad. http://www.programacionfacil.com/estructura_datos_csharp:recursividad_en_diseno

Complejidad

Un algoritmo recursivo es un algoritmo que se define en trminos de s mismo. Son implementados en forma de subprogramas (funciones, subrutinas, procedimientos, etc) de tal forma que dentro de un subprograma recursivo hay una o ms llamadas a l mismo. FUNCIN Factorial(n) INICIO SI (n<2) ENTONCES Factorial = 1; SINO Factorial = n * Factorial(n-1); FIN-SI FIN Generalmente, si la primera llamada al subprograma se plantea sobre un problema de tamao u orden N, cada nueva ejecucin recurrente del mismo se plantear sobre problemas, de igual naturaleza que el original, pero de un tamao menor que N. De esta forma, al ir reduciendo progresivamente la complejidad del problema a resolver, llegar un momento en que su resolucin sea ms o menos trivial (o, al menos, suficientemente manejable como para resolverlo de forma no recursiva). En esa situacin diremos que estamos ante un caso base de la recursividad. http://www.programacionfacil.com/estructura_datos_csharp/complejidad_algoritmos_recur sivos

También podría gustarte