Está en la página 1de 28

Caracterización de la eficiencia de

algoritmos computacionales

Equipo #10
Nombre Matricula Carrera

Rubén Adrián German Valdez 1919497 IAS

Joel Alejandro Del Abra Pineda 1956935 IAS

Alan Joant Hernández Ramírez 1967795 ITS

Ángel Mario Hernández Martínez 1973493 ITS


Introducción

En esta presentación abarcaremos desde una introducción básica de lo que es un algoritmo, así

como la eficiencia de estos mismos y como poder conocer algunas de las características que

tienen los algoritmos que son altamente eficientes y como estos están presentes a cada

momento, hablaremos de lo que es la notación de complejidad asintótica O-grande y como

esta nos ayuda en los diferentes casos que pueden existir. De igual manera abarcaremos un

poco de lo que es el análisis de algoritmos, el cual nos ayuda a comprender un poco más de

los temas que hablamos a lo largo de esta presentación.


Algoritmos y problemas

 Cada algoritmo resuelve a un problema particular


 Hay varias maneras de resolver un problema
 Algunas maneras son buenas y otras son malas
Eficiencia de un algoritmo

Un algoritmo es considerado eficiente si su consumo de recursos está en la media o


por debajo de los niveles aceptables. Hablando a grandes rasgos, 'aceptable'
significa: que el algoritmo corre en un tiempo razonable en una computadora
dada.
Entonces, ¿Qué es eficiencia?

 La eficiencia de un algoritmo es la propiedad mediante la


cual dicho debe alcanzar la solución al problema en el
tiempo más corto posible o utilizando la cantidad más
pequeña de recursos.
 Un buen programador debe buscar el algoritmo más
eficiente.

Uno de los métodos más sobresalientes es el análisis de algoritmos, que permite


medir la dificultad propia de un problema.
¿Para que nos sirve el
análisis de algoritmos?
El propósito del análisis de algoritmos es identificar
los algoritmos buenos.

Además nos ayuda a:

 Determinar tiempos de respuesta (runtime)


 Determinar recursos computacionales
 Generaliza el número de operaciones que requiere
un algoritmo para encontrar la solución a un
problema
Ventajas y Desventajas
Desventajas
Ventajas
 Para muchos casos, el análisis no es
 Elección de algoritmos eficientes trivial.
para resolver problemas específicos.
 No depende de lenguajes de
programación ni de hardware.
¿Qué necesitamos para realizarlo?
Para realizar el análisis de un algoritmo, es necesario:
 Conocer la complejidad del problema que resuelve el algoritmo
 Conocer la dimensión de la entrada (número de elementos)
 Determinar el número de operaciones a realizar

La complejidad de un algoritmo se representa a través de una función


matemática que pueden ser:

Polinomios
Logaritmos
Exponentes
Funciones
Podemos encontrar distintos tipos de funciones en los algoritmos :

f(n) = cn (algoritmos lineales)


f(n) = cn^2 (algoritmos cuadráticos)
f(n) = cn^3 (algoritmos cúbicos)

 Un algoritmo puede estar compuesto de dos o más operaciones, por lo que determinar
la complejidad depende de identificar la operación más costosa en el algoritmo
Complejidad de un algoritmo

Para determinar la complejidad de un algoritmo, se siguen los siguientes pasos:


 Se analiza el algoritmo para determinar una función que represente el número de
operaciones a realizar por el mismo
 Se define en términos de funciones matemáticas, el orden de la función
 Se clasifica de acuerdo a su complejidad
Noción de complejidad
Cálculo de complejidad: determinación de dos
parámetros o funciones de coste:

 Complejidad espacial : Cantidad de recursos


espaciales ( de almacén) que un algoritmo consume
o necesita para su ejecución.
 Complejidad temporal : Cantidad de tiempo que un
algoritmo necesita para su ejecución .
¿Qué casos pueden ocurrir?

El tiempo que requiere un algoritmo para dar una respuesta, se divide generalmente en 3 casos:
 Peor Caso: caso más extremo, donde se considera el tiempo máximo para solucionar un
problema.

 Caso promedio: caso en el cual, bajo ciertas restricciones, se realiza un análisis del algoritmo

 Mejor caso: caso ideal en el cual el algoritmo tomará el menor tiempo para dar una respuesta
La notación asintótica

El interés principal del análisis de algoritmos radica en saber cómo crece el tiempo
de ejecución, cuando el tamaño de la entrada crece.
Esto es la eficiencia asintótica del algoritmo.
La notación asintótica se describe por medio de una función cuyo dominio es los números
naturales (Ν) estimado a partir de tiempo de ejecución o de espacio de memoria de
algoritmos en base a la longitud de la entrada.

•  Se usa para representar consumo a través del tiempo (recursos, memoria, etc).

•  Permite cuantificar rendimientos de funciones con base a su estructura.

•  Define la correlación del crecimiento del tiempo de ejecución de un algoritmo en función


de las operaciones a ejecutar.
O-grande (Big-O)

O-grande (Big-O), comúnmente escrito como O, es una notación


asintótica para el peor caso, o el techo de crecimiento para una
función determinada.

Big-Omega

Big-Omega, comúnmente escrito como Ω, es una notación


asintótica para el mejor caso, o el piso en el crecimiento
Aquí hay una lista de funciones en notación
asintótica que a menudo encontramos cuando
analizamos algoritmos, ordenadas de la que
crece más despacio a la que crece más rápido:
Implementación #1

Considerando el valor de Pi como


una constante, muestre el Área de
un Circulo, solicitando el radio,
con su respectivo Algoritmo.
Pseudocódigo
Diagrama de
flujo
Codigo en C
Comprobación
Implementación #2

Elabore un DF que calcule el


discriminante de una ecuación
de la forma A𝑥^2+Bx+ C
usando la fórmula
D=(𝐵^2−4𝐴𝐶). Con su
respectivo algoritmo.
Diagrama de
flujo
Codigo en C
Comprobación
Conclusión

A lo largo de esta presentación pudimos conocer más acerca de lo que son los algoritmos y como poder medir el tiempo
que toma realizar dichas instrucciones, conocer más acercas de los múltiples veneficios que nos traen a nuestra vida
diaria y como nos facilita el hacer muchas tareas de una forma rápida y eficaz. Así como también que los programas o
algoritmos que uno tiene que hacer debe de comprometerse de hacerlo lo más entendible posible, con los errores menos
posibles para que el mantenimiento de este no sea tan continuo y que sea altamente eficiente.
Referencias
Eficiencia de los Algoritmos. (2013, 9 abril). WordPress. https://danielandres25.wordpress.com/unidad-1/eficacia-de-los-

algoritmos/

Khan Academy. (s. f.). Funciones en notación asintótica (artículo). Recuperado 24 de febrero de 2021, de

https://es.khanacademy.org/computing/computer-science/algorithms/asymptotic-notation/a/functions-in-asymptotic-

notation

N. (2016, 22 enero). 1 análisis de Algoritmos Metodologías para el análisis de algoritmos Notación asintótica Elementos

matemáticos Otras técnicas de análisis. vdocuments.mx. https://vdocuments.mx/1-analisis-de-algoritmos-metodologias-

para-el-analisis-de-algoritmos-notacion.html

También podría gustarte