Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad 1:
Introducción
• Para cada algoritmo es necesario aclarar cuáles son las operaciones elementales y
cómo están representados los datos de entrada y de salida.
F.C.A.D – U.N.E.R. 1
Algoritmos y Complejidad Unidad 1: Introducción
F.C.A.D – U.N.E.R. 2
Algoritmos y Complejidad Unidad 1: Introducción
La ventaja del enfoque teórico es que no depende de la computadora que se usa, ni del
lenguaje de programación, ni siquiera de la habilidad del programador. Ahorra el tiempo
que se perdería tanto programando un algoritmo ineficiente como probándolo en una
máquina. Más importante aún, nos permite estudiar la eficiencia de un algoritmo
trabajando con instancias de cualquier tamaño. Este no es el caso con el enfoque empírico,
donde las consideraciones prácticas pueden forzarnos a probar nuestros algoritmos sólo
con un pequeño número de instancias de moderado tamaño elegidas arbitrariamente. Dado
que es frecuente que un algoritmo que recién se descubre comience a trabajar mejor que su
predecesor sólo cuando ambos se usan sobre instancias grandes, este último punto es
particularmente importante.
F.C.A.D – U.N.E.R. 3
Algoritmos y Complejidad Unidad 1: Introducción
pasos, operaciones o acciones elementales que debe realizar un algoritmo al ser ejecutado
en una instancia de tamaño n. Este tiempo depende de diversos factores, como los datos de
entrada que se le suministra, la calidad del código generado por el compilador para crear el
programa objeto, la naturaleza y rapidez de las instrucciones máquina del procesador
concreto que ejecuta el programa, y la complejidad intrínseca del algoritmo.
F.C.A.D – U.N.E.R. 4
Algoritmos y Complejidad Unidad 1: Introducción
• No está claramente especificado cuáles son las operaciones o los datos elementales.
• Dado que puede haber varias instancias de tamaño n, no está claro cuál de ellas es
la que se tiene en cuenta para determinar la cantidad de recursos necesaria.
• Constituye una cota superior al total de los recursos insumidos por el algoritmo.
Conocerla nos asegura que no se superará esa cantidad.
F.C.A.D – U.N.E.R. 5
Algoritmos y Complejidad Unidad 1: Introducción
Se considerará entonces que un algoritmo es más eficiente que otro para resolver un
determinado problema si su tiempo de ejecución (o espacio) en el peor caso tiene un
crecimiento menor.
function multRusa(m,n)
prod 0
repeat
if m es impar then
prod prod + n
end if
mm÷2
nn+n
until m = 1
return prod
F.C.A.D – U.N.E.R. 6
Algoritmos y Complejidad Unidad 1: Introducción
F.C.A.D – U.N.E.R. 7
Algoritmos y Complejidad Unidad 1: Introducción
F.C.A.D – U.N.E.R. 8