Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ALGORITMIA
Introducción
2022-I
Motivación
¿Se puede planificar óptimamente una solución a
un problema con información almacenada de
distintas fuentes de datos?
Contenido
• Introducción a los algoritmos
• Razonamiento Lógico
• Pasos para resolver un problema
• Características y condiciones del algoritmo
• Representación de los algoritmos
Introducción a los Algoritmos
Un algoritmo es una secuencia de pasos a seguir para resolver un problema
usando un computador u ordenador.
• Algunas reglas:
• Empieza por la palabra “Inicio” y termina con la palabra “Fin”
• Se escribe una acción por línea
• Se subrayan las palabras clave
14
Representación algorítmica
Diagrama de Flujo (DF):
• Representación gráfica del flujo de control de un algoritmo
• Elementos:
Entrada/
Terminal Proceso
Salida
no Conectores
Decisión Subprograma
si
15
Representación algorítmica
Diagrama de flujo
Pseudocódigo
Inicio
SUMA <- 2
Entorno NUM <- 4
suma, num
SUMA <- SUMA +
Inicio NUM
// Iniciar variables
suma<- 2 SI NUM <- NUM + 2
num <- 4
// Suma de los números
NUM <= 100
repetir
suma <- suma + num NO
num <- num +2 escribir
mientras (num <= 100) SUMA
// Escribir resultado
escribir (suma) Fin
Fin
16
Ejemplo de Problema de ordenamiento
Ejemplo de Recursividad
Calcular: n!
int Fact(int n)
{ if (n < 1) return 1;
Label1: else return n*Fact(n-1);
}
Complejidad de un algoritmo
En el análisis de algoritmos siempre se escogerá un tipo de operación particular que ocurra en el
algoritmo, y se realizará un análisis matemático a fi n de determinar el número de operaciones
necesarias para completar el algoritmo.
Por ejemplo, en todos los algoritmos de ordenamiento debe hacerse la comparación de datos, por lo que
el
número de comparaciones suele emplearse para medir la complejidad temporal de algoritmos de
ordenamiento.
Para medir la complejidad temporal de un algoritmo, es tentador escribir un programa para este
algoritmo y ver qué tan rápido corre.
Esto no es lo apropiado porque hay muchos factores no relacionados con el algoritmo que afectan
el desempeño del programa.
Por ejemplo, la habilidad del programador, el lenguaje usado, el sistema operativo e incluso el
compilador del lenguaje particular, todos estos factores afectan el tiempo necesario para ejecutar el
programa.
Complejidad
• A un conjunto de funciones que comparten un mismo
comportamiento asintótico le denominaremos un orden de
complejidad.
• Habitualmente estos conjuntos se denominan O, existiendo una
infinidad de ellos.
• Para cada uno de estos conjuntos se suele identificar un miembro f(n)
que se utiliza como representante de la clase.
Ejemplos
Conclusiones
• Los algoritmos permiten organizar paso a paso la solución de un
problema.
• Los algoritmos tienen aspectos particulares de acuerdo a la
problemática.
• Los algoritmos se representan a través de gráficos.
Referencias bibliografícas
• Cormen Y. H., Leiserson C. E., Rivest R. L. y Stein C. Introduction to
Algorithms, Third Edition, MIT-Mc Graw Hill, 2009