No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Notación Big-O

11/18
Recursos

Con la notación Big-O buscamos descubrir una función (constante, lineal, polinomial, logarítmica y exponencial) que sea mayor o igual que la complejidad de un algoritmo, es decir, el peor caso que puede ejecutarse el programa.

Clases de Big-O

Las clases de Big-O son las representaciones simbólicas del tipo de crecimiento del algoritmo en el peor de los casos. El tipo de crecimiento es la función que se aproxima a los resultados de los valores de tiempo o espacio.

Esta representación simbólica consiste en la letra O mayúscula seguida de paréntesis que incluyen el tipo de crecimiento.

Clases de la notación Big-O

De esta manera, ya conoces las funciones representadas en la siguiente gráfica, donde las peores complejidades están situadas al extremo superior izquierdo, y las mejores están en el extremo inferior derecho. De las cuales representan el rendimiento del algoritmo.

Gráficas representativas de la complejidad

Fuente: Big-O Cheat Sheet

Contribución creada por Andrés Guano (Platzi Contributor).

Aportes 14

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

☣ Somos seres precavidos. Cuando asistimos a un viaje, podemos llevar más dinero de la cuenta. Por si algo sucede mal.
Resultado de esto:

¿$150? Mejor que sean $200.

❎ Hay muchas otras notaciones, pero lo que hace a Big-O tan importante es que se destaca en concentrarse en el caso peor de tu algoritmo.
🔝 En el tope superior de nuestras mediciones. Si nuestro algoritmo empezó con unas mediciones muy buenas, pero de pronto creció mucho en el consumo de un recurso. Big-O tomará en cuenta esto último para determinar qué crecimiento le pertenece.
Resultado de esto:

¿Crecimiento constante? Mejor que sea crecimiento lineal.

Big-O no contará tanto con las mediciones pequeñas, sino con las mediciones grandes.


👁‍🗨 Mira esta animación, y fíjate cómo el cambiar los puntos superiores determina dónde se traza la línea, que nos indica un O(n).

¿Porque necesitamos una notación?
La queremos usar para poder simplificar el análisis de la complejidad computacional

buscamos poder simplificar la representación de la complejidad

¿Qué buscamos con Big-O?
Buscamos descubrir una función (constante, lineal, polinomial, logarítmica o exponencial) que sea mayor o igual que la complejidad de un algoritmo.

Clases de Big-O

Clase Crecimiento Formula Emoji
O(1) Constante $f(x) = 1 $ 😊
O(log(n)) Logarítmico $f(x) = \log_{10}(x) $ 🙂
O(n) Lineal $f(x) = x $ 😶
O($n^2$) Cuadrático $f(x) = x^2 $ 🙁
O($2^n$) Exponencial $f(x) = 2^x $ 😢
O(n!) Factorial $f(x) = x! $ 😭

Formulas de cada una las clases de complejidades:

  • Cuadratico:
 f(x)=x^(2)
  • Lineal:
 g(x)=x
  • Constante:
 b(x)=1
  • Exponencial:
 c(x)=2^(x)
  • Logaritmico:
 l(x)=log(10,x)
  • Factorial:
 t(x)=x!
  • O(1) = O(☺️)

  • O(log n) = O(🙂)

  • O(n) = O(😶)

  • O(n^2) = O(🙁)

  • O(2^n) = O(😢)

  • O(n!) = O(😭)

Les dejo el link con el ejercicio en GeoGebra

https://www.geogebra.org/calculator/wc7dgmbt

no entendi naaaaaaaa

😕

Marcelo esa expresión “ambos dos” que mucho la utilizas ha caído en desuso en el español, no se si tu lengua nativa es el inglés y por eso la usas tan frecuentemente, te dejo un enlace a la RAE

https://www.rae.es/dpd/ambas

💣 Notación Big-O

Apuntes

  • La notación científica nos ayuda para acortarlos, con notación Big O se desea realizar eso

¿Por qué necesitamos una notación?

  • Una notación es necesaria para simplificar la complejidad, evitando variar con mediciones o gráficas

¿Qué buscamos con Big-O?

  • Buscamos descubrir una función (Constante, Lineal, Polinomial, Logarítmica, Exponencial) la cual sea mayor o igual que la complejidad de un algoritmo
Clase Crecimiento
O(1) Constante
O(log n) Logarítmico
O(n) Lineal
O(n²) Cuadrático
O(2^n) Exponencial
O(n!) Factorial
  • Si bien las clases parecen funciones son solo clases
  • Clases significa una forma de llamar
    • Constante ⇒ O(1)
Clase Emoji
O(1) O(😊)
O(log n) O(🙂)
O(n) O(😶)
O(n²) O(☹️)
O(2^n) O(😢)
O(n!) O(😭)

Este enlace de los recursos ya no sirve 😔:
https://radiant-anchorage-11930.herokuapp.com/

Un ejemplo de logaritmo es cuando compilas de tal manera y con la cantidad adecuada de input que ahorras segundos, estos segundos con el tiempo es eso tiempo ganado o menos gasto de recursos, que al principio parece no importar mucho pero cada segundo por cada calculo o comunicación va acumulándose en el tiempo.

La notacion Big-O es una espcie de imagen o de nivel de los algoritmo

La notación Big-O es una forma comúnmente utilizada en el análisis asintótico para describir el rendimiento de un algoritmo. Se utiliza para indicar el límite superior del tiempo de ejecución de un algoritmo a medida que el tamaño de los datos aumenta.

Por ejemplo, si un algoritmo tiene una complejidad de O(n^2), significa que el tiempo de ejecución del algoritmo aumenta cuadráticamente con el tamaño de los datos. Esto significa que si el tamaño de los datos se duplica, el tiempo de ejecución aumentará por un factor de cuatro.

La notación Big-O se utiliza a menudo para describir el rendimiento de algoritmos en términos de su orden de crecimiento. Otros términos comunes incluyen la notación Big-Ω (omega) y Big-Θ (theta). Big-Ω describe el límite inferior del rendimiento de un algoritmo, mientras que Big-Θ describe el rendimiento exacto de un algoritmo.

Notación Big-O

La notación Big O se utiliza para analizar el rendimiento de un algoritmo, lo cual es una forma matemática básica de expresar cuanto tarda un algoritmo en ejecutarse atendiendo sólo a grandes rasgos su eficiencia y así poder compararlo con otros. En definitiva evaluar su complejidad y poner nota a su eficiencia.

Así como utilizamos la notación científica para escribir números muy grandes o muy pequeños,

¿Por qué necesitamos una notación?

Una notación es necesaria para simplificar la complejidad y para evitar variaciones.

¿Qué buscamos con Big-O?

Descubrir una función (constante, lineal, polinomial, logarítmica, y exponencial) que sea mayor o igual que la complejidad de un algoritmo.

Clases de Big-O

Clase Crecimiento Fórmula Emoji
O(1) Constante b(x)=1 😊
O(log n) Logarítmico l(x)=log(10,x) 🙂
O(n) Lineal g(x)=x 😶
O(n²) Cuadrático f(x)=x^(2) ☹️
O(2ⁿ) Exponencial c(x)=2^(x) 😢
0(n!) Factorial t(x)=x! 😭