Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CARLOS FRANCO
CIENCIAS E INGENIERIA
INGENIERIA DE SISTEMAS E INFORMACION
MONTERIA – CORDOBA
2020
INTRODUCCION
adquirir los conocimientos necesarios sobre el tema y comprende mejor cada concepto.
Se busca dar a conocer los criterios necesarios para la medición de algoritmos, con el fin de
que puedan ser aplicados en forma general y así determinar el grado de eficiencia, según el
Algoritmos Recursivos
los algoritmos recursivos son aquellos que contienen llamados a sí mismos de forma finita
y se utilizan mayormente en problemas relacionados con las áreas matemáticas y
fundamentalmente cuando el problema está definido en términos de sí mismo. Cabe resaltar
que la recursividad es una forma elegante, simple, estructurada, modular y clara de resolver
problemas complejos en pocas líneas de código, por lo tanto, resulta de gran utilidad.
Asimismo, un punto importante de la recursividad es que usa recursos del sistema, tales
como el procesador y la pila del sistema, según el tipo de problema en cantidades variables.
Definición de recursividad:
En general que un sistema sea subsistema de otro más grande, y por otro, puede estar
compuesto de sistemas menores. La recursividad representa la jerarquización de todos
los sistemas existentes es el concepto unificador de la realidad y de los objetos.
Algoritmos iterativos
Los algoritmos iterativos son aquellos que funcionan a partir de procedimientos cíclicos.
Dichos algoritmos cuentan con una secuencia de instrucciones que se realizan mediante una
estructura llamada ciclo, la cual consta de: Un valor inicial, Un valor final, Un incremento.
Definición de iteratividad:
Un método iterativo trata de resolver un problema matemático mediante aproximaciones
sucesivas a la solución, empezando desde una estimación inicial. Esta aproximación
contrasta con los métodos directos, que tratan de resolver el problema de una sola vez.
TIPOS DE ALGORITMOS RECURSIVOS E ITERATIVOS.
TIPOS DE RECURSIVIDAD.
llamada al original.
salvo retornar.
TIPOS DE ITERATIVIDAD.
Este tipo de estructuras, son las que nos permiten ejecutar varias veces un conjunto
determinado de instrucciones, a esta repetición se le conoce con el nombre de ciclos. De
manera general existen 3 tipos de estructuras cíclicas, Do While (Repeat), While do
(While), For.
Estructura iterativa que indica un conjunto de instrucciones que se deben repetir mientras
que la respuesta a la condición colocada en el lugar del símbolo de decisión sea FALSA,
por lo tanto, cuando la respuesta sea VERDADERA se termina de ejecutar el ciclo. Esta
estructura se ejecuta siempre al menos una vez, debido a que las instrucciones para ejecutar
se encuentran dentro del ciclo antes de evaluar la expresión.
Esta estructura iterativa indica un rango de valores exacto que una variable tendrá para
repetir un conjunto de instrucciones. Consta de las siguientes partes: Un valor de inicio para
la variable, el incremento o decremento de los valores de la variable y por último la
comparación del valor de la variable con el fin del rango establecido. Las instrucciones para
ejecutar que se encuentran dentro del ciclo se ejecutarán mientras la respuesta a la
expresión colocada en el símbolo de decisión sea VERDADERA de lo contrario el ciclo se
termina. Aun así, el ciclo se puede ejecutar infinidad de veces debido a la falta de una
instrucción que permita incrementar o decrementar el valor de la variable a evaluar.
También es posible que nunca se ejecute el ciclo debido a que la asignación de la variable
para evaluar sea un valor que de cómo resultado: verdadero en la condición.
IMPLEMENTACION.
Implementación recursiva
➭ Factorial: n! = n ∗ (n−1)!
➭ Sumatorio: ∑
n
i=1
i = n+∑
n−1
i=1
i
➭ Máximo: max´ i:1...n
{v[i]} = maximo(v[n],max´ i:1...n−1
{v[i]})
➤ Encontrar uno o varios casos en los que la solución sea trivial: casos base ≡
condición/es de parada.
➭ Factorial: 0! = 1 y 1! = 1
➭ Sumatorio: ∑
1
i=1
i=1
➭ Máximo: max´ i:1...1
{v[i]} = v[1]
Implementación iterativa
Ejemplo: Sumatorio de 1 a N f = 0; i = 1;
while (i <= N)
f = f + i;
i = i + 1;
En lenguaje while:
f:= 0; i := 1;
while (i <= N) → f := f + i;
i:= i + 1;
CARACTERISTICAS.
Características de recursividad.
Ventajas
1. La ventaja de este método es que es muy accesible a los clientes no técnicos
2. . La ventaja de este método es más preciso y conciso
Desventaja
1. La principal dificultad es que a menudo se requiere un número excesivo de
escenarios para describir de forma completa un caso de uso, y que también es difícil
de describir requerimientos negativos
2. El inconveniente es que suelen ser difíciles de comprender por los usuarios no
técnicos.
RECURSIVIDAD VS ITERACION.
La mayoría de los algoritmos pueden expresarse tanto de forma iterativa como de forma
recursiva. A la hora de implementar un algoritmo, surge la duda respecto a la conveniencia
de utilizar una versión u otra.
▪ Conveniencia
Algunos lenguajes se benefician del uso de funciones recursivas respecto a las funciones
iterativas. Por ejemplo, los llamados lenguajes funcionales, como Lisp, Scheme o Haskell,
están orientados y optimizados para el trabajo con funciones recursivas.
Hay problemas cuya definición y/o solución son inherentemente recursivas y una solución
iterativa resultaría demasiado complicada. Lo contrario también es posible.
▪ Eficiencia
En general la versión iterativa de una función siempre es más eficiente que la versión
recursiva, tanto en términos de velocidad de ejecución como de memoria utilizada:
- Velocidad de ejecución:
- Uso de memoria:
En la versión recursiva, la llamada a la función requiere del uso de la pila para almacenar
los parámetros pasados (si los hay), dirección de retorno, resultado, etc. Si el nivel de
recursión puede ser muy elevado, el uso de memoria puede ser considerable o incluso
prohibitivo. No obstante, algunos algoritmos, en su versión iterativa, requieren de
estructuras de datos auxiliares que son implícitas a la versión recursiva del algoritmo al
pasar los datos como parámetros en la pila, de modo que consumen también mucha
memoria, al nivel de la versión recursiva.
▪ Sencillez
▪ Intuitividad.
El planteamiento iterativo de una función resulta a menudo más intuitivo que el recursivo, y
viceversa. Es posible favorecer la legibilidad y comprensibilidad del código respecto a la
eficiencia si ésta no es un factor determinante.
CONCLUSIÓN
= http://elvex.ugr.es/decsai/c/apuntes/algoritmos.pdf
de URL =
http://books.google.co.cr/books?id=2sSvS0pDfpAC&printsec=frontcover&hl=en#v=one
page&q&f=false.
http://informatica.uv.es/iiguia/MP/docs/tema5.pdf
https://www.uv.mx/personal/clgarcia/files/2012/10/IV-Algoritmos-iterativos.pdf