Unidad IV Punteros

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACIÓN


UNIVERSITARIA
UNIVERSIDAD POLITÉCNICA TERRITORIAL
“JOSÉ ANTONIO ANZOÁTEGUI”
UPTJAA

RECURSIVIDAD

Docente:
Julio Malavé

Participante:
Said Gabriel Páez
Moreno
C.I.:30.873.704

Barcelona, Anzoátegui. Febrero 2022


1. FUNDAMENTOS TEORICOS

a) Definición

La recursividad es un concepto que se indica cuando un método se


llama a sí mismo. Cuando creamos un método recursivo debemos
tener en cuenta que este tiene que terminar por lo que dentro del
método debemos asegurarnos de que no se está llamando a si mismo
todo el rato, Lo que quiere decir que el ciclo es finito.

b) Ámbito de aplicación

La recursividad es una técnica muy empleada en la programación


informática y consiste en que una función se llame a sí misma. El
ejemplo clásico es la función que calcula el factorial de un número. Un
factorial consiste en multiplicar un número natural por el número
anterior, y este a su vez por el anterior, y así sucesivamente hasta
llegar al número 1. Por ejemplo, el factorial de 8 sería el resultado de
multiplicar 8 por 7, luego por 6 y así sucesivamente hasta llegar a uno.

Una función recursiva que hiciera este cálculo multiplicaría el número


que se le pasa por el resultado de llamar a la función restando uno a
ese número. En nuestro ejemplo, multiplicar 8 por el factorial de 7.
Cuando el número que se le pasa es un 1, pues devuelve ese 1. Es la
llamada "condición de salida", y es esencial para impedir que la función
se esté llamando a sí misma eternamente.

Circula entre informáticos el chiste de que "para entender qué es la


recursividad antes hay que entender qué es la recursividad". Parece
que Google haya decidido llevar la broma a los resultados de su
buscador.

c) Utilidad

Podemos utilizar recursividad para reemplazar cualquier tipo de bucle.


A pesar de ello en el mundo laboral no se utiliza demasiado, debido a
que un error puede ser trágico en la memoria, así como tener una lista
con millones de datos, puede hacer que utiliza mucha memoria. Aun
así, la gran mayoría de las veces, utilizamos recursividad para
algoritmos de búsqueda u ordenación.

En Google, cuando se escribe mal un término, el buscador nos


pregunta si en realidad quisimos decir una palabra distinta, que
generalmente es la misma pero escrita correctamente. Pero si se
busca el término "recursión" o el español "recursividad", Google
pregunta si quisimos decir... "recursión" o "recursividad". Y así hasta el
infinito.

2. VENTAJAS Y DESVENTAJAS DE LA RECURSIVIDAD

Ventajas:

 Soluciones a problemas complejos de una manera más fácil,


simple, clara y elegante.

 No es necesario definir la secuencia de pasos exacta para


resolver el problema.
 Podemos considerar que “tenemos resuelto el problema” (de
menor tamaño).

 La eficiencia de la recursividad reside en el hecho de que se


puede usar para resolver problemas de difícil solución iterativa.

 Algunos problemas son más sencillos de implementar usando la


recursividad.

 Presenta una facilidad para comprobar y verificar que la solución


es correcta.

Desventajas:

 Ineficiencia.

 Sobrecarga asociada con las llamadas a subalgoritmos.

 Una simple llamada puede generar un gran número de llamadas


recursivas. (Fact(n) genera n llamadas recursivas).

 Puede que la claridad del algoritmo no compense la sobrecarga


del mismo

 Algoritmos recursivos ineficientes.


 Es necesario la creación de muchas variables lo que puede
ocasionar problemas en memoria.
 En general, una función recursiva toma más tiempo en generarse
que una iterativa.

 Debido a las llamadas constantes a métodos, a la creación de


variables dinámicas en la pila y la duplicación de las variables.

3. DISEÑO Y ESCRITURA DE PROGRAMAS RECURSIVOS

Diseño:

La inducción matemática es la base de la recursividad.

Los pasos para obtener un modelo recursivo son los siguientes:

 Analizar el problema original f (sn) y resumir un "pequeño


problema" razonable f (sn-1) (similar a la ecuación cuando n = k-
1 en el método de inducción matemática);

 Suponiendo que f (sn-1) se puede resolver, la solución de f (sn)


se determina sobre esta base, es decir, se da la relación entre f
(sn) yf (sn-1) (como se muestra en el método de inducción
matemática para demostrar n = k cuando se establece la
ecuación, el proceso es similar);

 Determine la solución de una situación específica (como f (1) of


(0)) y utilícela como una salida recursiva (similar a la inducción
matemática que prueba que la ecuación se cumple cuando n = 1
o n = 0).

Diseño de algoritmo recursivo de lista enlazada única


Al diseñar un algoritmo recursivo para una lista enlazada
individualmente sin un nodo principal:

Suponga que una determinada función de resolver toda la lista


enlazada individualmente con L como el primer puntero de nodo es un
"gran problema".

La misma función de la lista enlazada individualmente (identificada por


L-> siguiente, y esta operación es una operación recursiva) formada
por los nodos restantes fuera del primer nodo es un "pequeño
problema".

El cuerpo recursivo se obtiene de la relación de solución entre los


problemas de tamaño.

Luego considere el caso especial, generalmente cuando la lista


enlazada individualmente está vacía o solo hay un nodo, es fácil de
resolver en este momento, para obtener la salida recursiva.

Diseño de algoritmo recursivo de árbol binario

El árbol binario es una estructura de datos recursiva típica. Cuando un


árbol binario usa la cadena binaria b para almacenar:

Deje que la función de resolver todo el árbol binario con b como nodo
raíz sea un "gran problema".

Resolver la misma función de sus subárboles izquierdo y derecho es


un "pequeño problema".

El cuerpo recursivo se obtiene de la relación de solución entre los


problemas de tamaño.

Luego considere el caso especial, generalmente cuando el árbol


binario está vacío o solo hay un nodo, es fácil de resolver en este
momento, para obtener la salida recursiva.

Diseño de algoritmo recursivo basado en inducción


El diseño de algoritmos recursivos basado en el pensamiento inductivo
no suele ser tan intuitivo como el diseño de algoritmos recursivos
basado en la estructura de datos recursivos. Se necesita un análisis en
profundidad del problema para extraer la similitud en el proceso de
solución en lugar de la similitud de la estructura de datos, que aumenta
La dificultad del diseño de algoritmos.

Pero la solución de muchos problemas en el mundo real implica esta


similitud y refleja las características del pensamiento computacional.
BIBLIOGRAFÍA

Fundamentos teóricos. Documento en línea. Disponible en:

https://www.netmentor.es/entrada/Recursividad-programacion

Definición, ámbito de aplicación, utilidad. Documento en línea.


Disponible en:

https://www.libertaddigital.com/internet/que-es-la-recursividad-que-es-
la-recursividad-que-es-la-recursividad-1276366373/

Ventajas y desventajas de la recursividad. Documento en línea.


Disponible en:

https://estructurasdedatosjimenez.wordpress.com/2020/10/30/ventajas-
y-desventajas-de-la-recursividad/

Diseño y Escritura de programas recursivos. Documento en línea.


Disponible en:

https://programmerclick.com/article/81411062450/

También podría gustarte