Análisis de Complejidad de Algoritmos: Tiempos y Eficiencia
Clase 6 de 18 • Curso de Complejidad Algorítmica con JavaScript
Contenido del curso
Clase 6 de 18 • Curso de Complejidad Algorítmica con JavaScript
Contenido del curso
Jean Nuñez
Francisco Salcedo
Jose Manuel Hernandez De la Cruz
Alejandro Betancur
Fernando Quinteros Gutierrez
Lo Nero Camila
Juan Diego Quintero Calderón
Luis Rogelio Reyes Hernandez
Pepe Sosa
Martín Alexis Samán Arata
Anfernee Valera
Juan Manuel Espina
Iván Martínez
PABLO ARISTIZABAL
Marcelo Arias
León Sergio Mora Guerrero
Marcelo Arias
Javier Alejandro Albornoz Pérez
Fidel Parabacuto
Juan David Reyes
Brandon Argel Verdeja Domínguez
Brandon Argel Verdeja Domínguez
La complejida no se trata de cuando mas o menos se tarda sino como aumenta en el tiempo
Complejidad temporal: cuanto se demora un algoritmo en terminar. Complejidad espacial: cuanta memoria operativa (RAM usualmente) es requerida por el algoritmo.
La medida del tiempo tiene que ser independiente: – de la máquina – del lenguaje de programación – del compilador – de cualquier otro elemento hardware o software que influya en el análisis.
Creditos: https://www2.infor.uva.es/~jvalvarez/docencia/tema5.pdf
una joya, gracias por compartir!
La complejidad temporal se puede definir como la relación de crecimiento entre datos de entrada y tiempo de ejecución
⌛ Complejidad temporal
Apuntes
📌 **RESUMEN:** La complejidad temporal trata de medir la eficiencia de un algoritmo conforme la cantidad de datos de entrada va aumentando.
Muy bueno, muchas gracias!
La complejidad no es cuanto tarda un algoritmo en ejecutarse sino cuanto aumenta el tiempo a medida que crecen sus entradas
La complejidad temporal es la tasa de crecimiento del tiempo de ejecución del algoritmo en relación con el crecimiento de la entrada de datos del algoritmo.
Profe "ambos dos" está mal dicho, la RAE desaconseja su uso. Saludos.
Fuente: RAE.
Buena explicación del profe, messirve
Me quedó más claro la complejidad de un algoritmo en esta clase.
Una información interesante es que a la hora de medir la complejidad temporal, está debe ser independiente: – de la máquina – del lenguaje de programación – del compilador – de cualquier otro elemento hardware o software que influya en el análisis.
Para conseguir esta independencia una posible medida abstracta puede consistir en determinar cuantos pasos se efectúan al ejecutarse el algoritmo. más información acá
Básicamente hablan de la pendiente de una función. Me recuerda al calculo
¡Exacto! Y si vamos un poco más allá: habla de la derivada :)
Entonces, el algoritmo con mayor complejidad temporal es el "astronauta" ya que crece más en comparación a "experto" Lo que significa que si queremos un algoritmo ágil que use la menor cantidad de recursos(tiempo) debemos escoger el algoritmo Experto? Es decir, si buscamos el algoritmo más eficiente debemos buscar el algoritmo con menos complejidad?
¡Hola! El algoritmo más eficiente es el algoritmo con menor complejidad de recursos. En la situación en la que los datos de entrada aumenten, el algoritmo más eficiente sería el que menor recurso consuma (como espacio o tiempo).
No me ha quedado claro. ¿Cuál es entonces el algoritmo de mayor complejidad temporal? Pareciera que depende el caso, pues con una menor cantidad de datos el ganador es Experto y con mayor el ganador es Astronauta.
👋 ¡Hola Sergio! Buena pregunta. En este ejemplo se toma en cuenta que Astronauta va a aumentar los datos y sobrepasará a Experto en la cantidad de tiempo empleado. Por lo tanto la respuesta es que Astronauta es el algoritmo de mayor complejidad temporal.
Con la complejidad nos referimos a cómo el algoritmo usará los recursos (en este caso, de tiempo). Esto es distinto a una medida en particular del tiempo.
El tiempo puede variar mientras se midan los datos (Experto o Astronauta pueden demorar más o menos), y una vez tengamos los datos: la complejidad no varía.
Complejidad temporal
La **complejidad temporal **se refiere al tiempo que un algoritmo necesita para completarse
Una forma común de medir la complejidad temporal es en función del tamaño de la entrada, es decir, cuánto tiempo toma el algoritmo para ejecutarse en función del tamaño de la entrada.
La complejidad lineal, que se da cuando el tiempo de ejecución es proporcional al tamaño de la entrada.
La complejidad cuadrática, que se da cuando el tiempo de ejecución es proporcional al cuadrado del tamaño de la entrada.
La complejidad logarítmica, que se da cuando el tiempo de ejecución es logarítmico con respecto al tamaño de la entrada
La complejidad constante, que se da cuando el tiempo de ejecución es independiente del tamaño de la entrada.
Qué buen trabajo con los slides :3
Complejidad temporal
La complejidad temporal no es una medida de cuánto tarda en ejecutarse un algoritmo sino de cómo varía el tiempo de ejecución cuando existe una variación en la cantidad de datos de entrada. La complejidad temporal no tiene unidad, es una medida relativa.
La complejidad temporal no es una medida de cuánto tarda en ejecutarse un algoritmo sino de cómo varía el tiempo de ejecución cuando existe una variación en la cantidad de datos de entrada. La complejidad temporal no tiene unidad, es una medida relativa.