SlideShare una empresa de Scribd logo
RECURSIVIDAD
Nombre: Elian Perdomo
Recursividad en
Programación
La recursividad es un concepto fundamental en la programación que
permite a las funciones llamarse a sí mismas, creando un bucle iterativo
que resuelve problemas complejos mediante la descomposición en
subproblemas más simples. Esta técnica ofrece una forma elegante y
concisa de abordar problemas que se repiten de manera estructurada.
Definición y Conceptos Básicos
Recursividad
La recursividad es la técnica de definir una función que se
llama a sí misma dentro de su propia definición. Esta
autoreferencia crea un bucle iterativo que se repite hasta
que se cumple una condición de salida. En esencia, una
función recursiva se encarga de dividir un problema en
subproblemas del mismo tipo, hasta que se alcanza un
caso base que se resuelve directamente.
Caso Base
El caso base es la condición que pone fin a la recursión. Es
una condición que se cumple sin necesidad de recurrir a la
función recursiva. Actúa como un punto de parada,
evitando que la recursión se ejecute indefinidamente y
asegurando que la función tenga un final.
Caso Base y Caso Recursivo
1 Caso Base
Es el punto de parada de la
recursión. Debe ser
definido para evitar un
bucle infinito.
2 Caso Recursivo
La parte de la función que
llama a sí misma,
rompiendo el problema en
subproblemas.
Funciones Recursivas Simples y Múltiples
Función Recursiva Simple
Llama a sí misma una sola vez dentro de su propia
definición. Por ejemplo, una función para calcular el
factorial de un número.
Función Recursiva Múltiple
Se llama a sí misma múltiples veces dentro de su propia
definición. Por ejemplo, una función para calcular la
secuencia de Fibonacci.
Ejemplo: Cálculo del Factorial
1
Factorial (n)
n! = n * (n-1) * (n-2) * ... * 2 * 1
2
Caso Base
n = 0, factorial(0) = 1
3
Caso Recursivo
n > 0, factorial(n) = n * factorial(n-1)
Análisis de la Solución
Recursiva del Factorial
Tiempo
La recursión en este caso es
eficiente, con una complejidad
temporal O(n).
Memoria
La recursión utiliza memoria
adicional para almacenar los
resultados intermedios de cada
llamada recursiva, lo que puede
ser costoso para problemas
grandes.
Ejemplo: Secuencia de
Fibonacci
1 Fibonacci (n)
F(n) = F(n-1) + F(n-2)
2 Caso Base
n = 0, F(0) = 0; n = 1, F(1) = 1
3 Caso Recursivo
n > 1, F(n) = F(n-1) + F(n-2)
Análisis de la Solución Recursiva de Fibonacci
Tiempo
La recursión en Fibonacci tiene una complejidad exponencial O(2^n) debido a las llamadas recursivas repetidas.
Memoria
Al igual que con el factorial, la recursión utiliza memoria adicional para almacenar los resultados intermedios, lo que
puede ser costoso para números grandes.
Ventajas y Desventajas de la
Recursividad
1
Legibilidad
La recursividad puede hacer que el código sea
más conciso y fácil de entender, especialmente
para problemas que se repiten de manera
estructurada.
2
Estructura
La recursión divide problemas complejos en
subproblemas más simples, lo que facilita la
comprensión y la resolución.
3
Desempeño
La recursión puede ser ineficiente en términos
de tiempo y memoria, especialmente para
problemas grandes. Se debe analizar
cuidadosamente su complejidad para evitar un
impacto negativo.
Cuándo Utilizar y Cuándo Evitar la Recursividad
La recursividad es una herramienta poderosa, pero es importante usarla con cuidado. Se recomienda usarla cuando el
problema tenga una estructura recursiva clara y el rendimiento no sea una preocupación principal. Evite la recursión en
casos donde la complejidad temporal o espacial sea demasiado alta o cuando existan soluciones iterativas más eficientes.

Más contenido relacionado

PPTX
Programas_Recursivos.pptx
PPTX
Curso recursividad
DOCX
Recursividad2019
PPTX
2 clase 1_recursividad
PPTX
recursividad.pptx
PPTX
recursividad EN PROGRAMACION ORIENTADA .pptx
DOCX
II Unidad
DOCX
II Unidad
Programas_Recursivos.pptx
Curso recursividad
Recursividad2019
2 clase 1_recursividad
recursividad.pptx
recursividad EN PROGRAMACION ORIENTADA .pptx
II Unidad
II Unidad

Similar a Recursividad-en-Programacion-JEFFERSON PERDOMO (20)

PPTX
Recursividad
PPTX
RECURSIVIDAD
PPT
Recursividad
PPT
Recursividad
PDF
Programación Orientada a Objetos parte 3
PPTX
2. Recursividad
PPT
Presentación de Recursividad para Estructuras de datos.ppt
PPT
Tecnicas de Recursividad_Programacion.ppt
PDF
Recursividad.pdf
PDF
Generalidades, tipos y ejemplos de Recursividad
DOCX
Recursividad ia lili
DOCX
Recursividad ia lili
PPT
Recursividad-Analisis de Algoritmos .ppt
PPTX
Recursividad
PDF
Funciones recursivas en C++
PPTX
Recursividad3
PPTX
Funciones recursivas
Recursividad
RECURSIVIDAD
Recursividad
Recursividad
Programación Orientada a Objetos parte 3
2. Recursividad
Presentación de Recursividad para Estructuras de datos.ppt
Tecnicas de Recursividad_Programacion.ppt
Recursividad.pdf
Generalidades, tipos y ejemplos de Recursividad
Recursividad ia lili
Recursividad ia lili
Recursividad-Analisis de Algoritmos .ppt
Recursividad
Funciones recursivas en C++
Recursividad3
Funciones recursivas
Publicidad

Último (20)

PDF
Diapositiva proyecto de vida, materia catedra
PPTX
El uso de las TIC en la vida cotidiana..
DOCX
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
PPT
Protocolos de seguridad y mecanismos encriptación
PDF
Documental Beyond the Code (Dossier Presentación - 2.0)
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
DOCX
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
PDF
Taller tecnológico Michelle lobo Velasquez
PPTX
Mecanismos-de-Propagacion de ondas electromagneticas
PPTX
Propuesta BKP servidores con Acronis1.pptx
DOCX
Trabajo informatica joel torres 10-.....................
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PPTX
ccna: redes de nat ipv4 stharlling cande
PPTX
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PPTX
Control de calidad en productos de frutas
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
ccna: redes de nat ipv4 stharlling cande
PDF
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Diapositiva proyecto de vida, materia catedra
El uso de las TIC en la vida cotidiana..
TRABAJO GRUPAL (5) (1).docxsjjsjsksksksksk
Protocolos de seguridad y mecanismos encriptación
Documental Beyond the Code (Dossier Presentación - 2.0)
Historia Inteligencia Artificial Ana Romero.pptx
TRABAJO GRUPAL (5) (1).docxjsjsjskskksksk
Taller tecnológico Michelle lobo Velasquez
Mecanismos-de-Propagacion de ondas electromagneticas
Propuesta BKP servidores con Acronis1.pptx
Trabajo informatica joel torres 10-.....................
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
TRABAJO DE TECNOLOGIA.pdf...........................
ccna: redes de nat ipv4 stharlling cande
Tema 1 Taller de tecnologia y proceso tecnologico.pptx
la-historia-de-la-medicina Edna Silva.pptx
Control de calidad en productos de frutas
Curso de generación de energía mediante sistemas solares
ccna: redes de nat ipv4 stharlling cande
0007_PPT_DefinicionesDeDataMining_201_v1-0.pdf
Publicidad

Recursividad-en-Programacion-JEFFERSON PERDOMO

  • 2. Recursividad en Programación La recursividad es un concepto fundamental en la programación que permite a las funciones llamarse a sí mismas, creando un bucle iterativo que resuelve problemas complejos mediante la descomposición en subproblemas más simples. Esta técnica ofrece una forma elegante y concisa de abordar problemas que se repiten de manera estructurada.
  • 3. Definición y Conceptos Básicos Recursividad La recursividad es la técnica de definir una función que se llama a sí misma dentro de su propia definición. Esta autoreferencia crea un bucle iterativo que se repite hasta que se cumple una condición de salida. En esencia, una función recursiva se encarga de dividir un problema en subproblemas del mismo tipo, hasta que se alcanza un caso base que se resuelve directamente. Caso Base El caso base es la condición que pone fin a la recursión. Es una condición que se cumple sin necesidad de recurrir a la función recursiva. Actúa como un punto de parada, evitando que la recursión se ejecute indefinidamente y asegurando que la función tenga un final.
  • 4. Caso Base y Caso Recursivo 1 Caso Base Es el punto de parada de la recursión. Debe ser definido para evitar un bucle infinito. 2 Caso Recursivo La parte de la función que llama a sí misma, rompiendo el problema en subproblemas.
  • 5. Funciones Recursivas Simples y Múltiples Función Recursiva Simple Llama a sí misma una sola vez dentro de su propia definición. Por ejemplo, una función para calcular el factorial de un número. Función Recursiva Múltiple Se llama a sí misma múltiples veces dentro de su propia definición. Por ejemplo, una función para calcular la secuencia de Fibonacci.
  • 6. Ejemplo: Cálculo del Factorial 1 Factorial (n) n! = n * (n-1) * (n-2) * ... * 2 * 1 2 Caso Base n = 0, factorial(0) = 1 3 Caso Recursivo n > 0, factorial(n) = n * factorial(n-1)
  • 7. Análisis de la Solución Recursiva del Factorial Tiempo La recursión en este caso es eficiente, con una complejidad temporal O(n). Memoria La recursión utiliza memoria adicional para almacenar los resultados intermedios de cada llamada recursiva, lo que puede ser costoso para problemas grandes.
  • 8. Ejemplo: Secuencia de Fibonacci 1 Fibonacci (n) F(n) = F(n-1) + F(n-2) 2 Caso Base n = 0, F(0) = 0; n = 1, F(1) = 1 3 Caso Recursivo n > 1, F(n) = F(n-1) + F(n-2)
  • 9. Análisis de la Solución Recursiva de Fibonacci Tiempo La recursión en Fibonacci tiene una complejidad exponencial O(2^n) debido a las llamadas recursivas repetidas. Memoria Al igual que con el factorial, la recursión utiliza memoria adicional para almacenar los resultados intermedios, lo que puede ser costoso para números grandes.
  • 10. Ventajas y Desventajas de la Recursividad 1 Legibilidad La recursividad puede hacer que el código sea más conciso y fácil de entender, especialmente para problemas que se repiten de manera estructurada. 2 Estructura La recursión divide problemas complejos en subproblemas más simples, lo que facilita la comprensión y la resolución. 3 Desempeño La recursión puede ser ineficiente en términos de tiempo y memoria, especialmente para problemas grandes. Se debe analizar cuidadosamente su complejidad para evitar un impacto negativo.
  • 11. Cuándo Utilizar y Cuándo Evitar la Recursividad La recursividad es una herramienta poderosa, pero es importante usarla con cuidado. Se recomienda usarla cuando el problema tenga una estructura recursiva clara y el rendimiento no sea una preocupación principal. Evite la recursión en casos donde la complejidad temporal o espacial sea demasiado alta o cuando existan soluciones iterativas más eficientes.