Академический Документы
Профессиональный Документы
Культура Документы
HUAMANGA
DEPARTAMENTO ACADÉMICO DE MATEMÁTICA Y FÍSICA
PROF. JOSÉ ELÍAS YAURI VIDALÓN
CAPÍTULO I
ALGORITMOS
Índice
1. Algoritmos .......................................................................................................................................... 1
1.1. Definiciones formales: ............................................................................................................... 2
1.2. Historia ...................................................................................................................................... 2
1.3. Características de los Algoritmos: ............................................................................................. 3
2. Análisis de Algoritmos ....................................................................................................................... 4
2.1. Tiempo Polinómico ................................................................................................................... 4
2.2. Tiempo No Polinómico ............................................................................................................. 5
3. Solución de un Problema y Diseño de Algoritmos ............................................................................ 5
3.1. Pasos para la Resolución de un Problema ................................................................................. 6
3.2. Descomposición de Algoritmos ................................................................................................. 6
3.3. El Pseudocódigo ........................................................................................................................ 7
4. Referencias ......................................................................................................................................... 8
1. Algoritmos
Así, de forma simple, un algoritmo es una secuencia de pasos para resolver un problema,
teniendo en cuenta que debe de ser definido, finito y preciso.
1.1.Definiciones formales:
1.2.Historia
Por estas razones, aunque no haya sido él el inventor del primer algoritmo, merece
que este concepto esté asociado a su nombre. Al-Khwarizmi fue sin duda el primer
pensador algorítmico.
1
Al-Khwarizmi alcanzó gran reputación por el enunciado de la regla paso a paso para sumar, restar,
multiplicar y dividir números decimales.
Tener cero o más entradas: Los datos son proporcionados a un algoritmo como
insumos (o estos son generados de alguna forma) para llevar a cabo las
operaciones que comprende.
Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no
usando más ni menos que aquello que se requiera para su ejecución.
2. Análisis de Algoritmos
Los problemas que tienen una solución con orden de complejidad lineal son los
problemas que se resuelven en un tiempo que se relaciona linealmente con su tamaño.
Hoy en día las computadoras resuelven problemas mediante algoritmos que tienen como
máximo una complejidad o coste computacional polinómico, es decir, la relación entre
el tamaño del problema y su tiempo de ejecución es polinómica. Éstos son problemas
agrupados en la clase P. Los problemas que no pueden ser resueltos por nuestras
computadoras (las cuales son Máquinas Determinísticas), que en general poseen costes
factorial o combinatorio, pero que podrían ser procesados por una máquina no-
determinista, están agrupados en la clase NP. Estos problemas no tienen una solución
práctica, es decir, una máquina determinística (como una computadora actual) no puede
resolverlos en un tiempo razonable.
2.1.Tiempo Polinómico
Por ejemplo, si determinar el camino óptimo que debe recorrer un cartero que pasa por
N casas necesita menos de 50N2+N segundos, entonces el problema es resoluble en un
"tiempo polinómico".
2
La teoría de la complejidad computacional es la rama de la teoría de la computación que estudia, de
manera teórica, los recursos requeridos durante el cómputo de un algoritmo para resolver un problema.
2.2.Tiempo No Polinómico
Si un algoritmo puede ser ejecutado por una computadora, se dice que es un algoritmo
computacional; en caso contrario, se dice que es un algoritmo no computacional.
Según esto, el algoritmo de Euclides es un algoritmo computacional; pero el algoritmo
para instalar el equipo de sonido es un algoritmo no computacional.
Para que un algoritmo pueda ser ejecutado por una computadora, este debe ser expresado
mediante instrucciones comprensibles por la computadora; para esto se requiere de un
determinado lenguaje de programación. Al algoritmo expresado en un determinado
lenguaje de programación, se denomina programa. Puesto de otra manera, podemos
decir que, un programa es la implementación o expresión de un algoritmo en un
determinado lenguaje de programación siguiendo las reglas establecidas por el lenguaje
elegido.
3.2.Descomposición de Algoritmos
3.3.El Pseudocódigo