If you're seeing this message, it means we're having trouble loading external resources on our website.

Si estás detrás de un filtro de páginas web, por favor asegúrate de que los dominios *.kastatic.org y *.kasandbox.org estén desbloqueados.

Contenido principal

Funciones en notación asintótica

Cuando usamos notación asintótica para expresar la tasa de crecimiento del tiempo de ejecución de un algoritmo en términos del tamaño de la entrada n, es bueno tener algunas cosas en mente.
Empecemos con algo sencillo. Supón que el algoritmo se tardó una cantidad constante de tiempo, sin importar el tamaño de su entrada. Por ejemplo, si te dieron un arreglo que ya está ordenado en orden ascendente y tienes que encontrar el elemento mínimo, te tomaría un tiempo constante, ya que el elemento mínimo debe estar en el índice 0. Como queremos usar una función de n en notación asintótica, podrías decir que este algoritmo se ejecuta en un tiempo \Theta, left parenthesis, n, start superscript, 0, end superscript, right parenthesis. ¿Por qué? Porque n, start superscript, 0, end superscript, equals, 1 y el tiempo de ejecución del algoritmo está dentro del rango de un factor constante de 1. Sin embargo, en la práctica, no escribimos \Theta, left parenthesis, n, start superscript, 0, end superscript, right parenthesis; escribimos \Theta, left parenthesis, 1, right parenthesis.
Ahora supón que un algoritmo tardó un tiempo \Theta, left parenthesis, log, start base, 10, end base, n, right parenthesis. También podrías decir que tardó un tiempo \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis. Siempre que la base del logaritmo sea una constante, no importa qué base usemos en la notación asintótica. ¿Por qué no? Porque hay una fórmula matemática que dice:
log, start base, a, end base, n, equals, start fraction, log, start base, b, end base, n, divided by, log, start base, b, end base, a, end fraction
para todos los números positivos a, b y n. Por lo tanto, si a y b son constantes, entonces log, start base, a, end base, n y log, start base, b, end base, n difieren solo por un factor de log, start base, b, end base, a y ese es un factor constante que podemos ignorar en la notación asintótica.
Por lo tanto, podemos decir que el peor tiempo de ejecución de la búsqueda binaria es \Theta, left parenthesis, log, start base, a, end base, n, right parenthesis para cualquier constante positiva a. ¿Por qué? El número de intentos es a lo más log, start base, 2, end base, n, plus, 1, generar y probar cada intento tarda un tiempo constante y configurar y regresar tarda un tiempo constante. Sin embargo, como cuestión de práctica, a menudo escribimos que esa búsqueda binaria tarda \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis porque en ciencias de la computación nos gusta pensar en potencias de 2.
Hay un orden en las funciones que a menudo vemos cuando analizamos algoritmos usando notación asintótica. Si a y b son constantes y a, is less than, b, entonces un tiempo de ejecución de \Theta, left parenthesis, n, start superscript, a, end superscript, right parenthesis crece más despacio que un tiempo de ejecución de \Theta, left parenthesis, n, start superscript, b, end superscript, right parenthesis. Por ejemplo, un tiempo de ejecución de \Theta, left parenthesis, n, right parenthesis, que es \Theta, left parenthesis, n, start superscript, 1, end superscript, right parenthesis, crece más despacio que un tiempo de ejecución de \Theta, left parenthesis, n, squared, right parenthesis. Los exponentes tampoco tienen que ser enteros. Por ejemplo, un tiempo de ejecución de \Theta, left parenthesis, n, squared, right parenthesis crece más despacio que un tiempo de ejecución de \Theta, left parenthesis, n, squared, square root of, n, end square root, right parenthesis, que es \Theta, left parenthesis, n, start superscript, 2, point, 5, end superscript, right parenthesis.
La siguiente gráfica comparas el crecimiento de n,n, squared y n, start superscript, 2, point, 5, end superscript:
Gráfica que compara n, n cuadrada y n a la 2.5
Los logaritmos crecen más despacio que los polinomios. Eso es, \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis crece más despacio que \Theta, left parenthesis, n, start superscript, a, end superscript, right parenthesis para cualquier constante positiva a. Pero como el valor de log, start base, 2, end base, n crece a medida que n crece, \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis crece más rápido que \Theta, left parenthesis, 1, right parenthesis.
La siguiente gráfica compara el crecimiento de 1, n y log, start base, 2, end base, n:
Gráfica que compara 1, log base 2 de n y n
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:
  1. \Theta, left parenthesis, 1, right parenthesis
  2. \Theta, left parenthesis, log, start base, 2, end base, n, right parenthesis
  3. \Theta, left parenthesis, n, right parenthesis
  4. \Theta, left parenthesis, n, log, start base, 2, end base, n, right parenthesis
  5. \Theta, left parenthesis, n, squared, right parenthesis
  6. \Theta, left parenthesis, n, squared, log, start base, 2, end base, n, right parenthesis
  7. \Theta, left parenthesis, n, cubed, right parenthesis
  8. \Theta, left parenthesis, 2, start superscript, n, end superscript, right parenthesis
  9. \Theta, left parenthesis, n, !, right parenthesis
Observa que la función exponencial a, start superscript, n, end superscript, donde a, is greater than, 1, crece más rápido que cualquier función polinomial n, start superscript, b, end superscript, donde b es cualquier constante.
La lista anterior no es exhaustiva, hay muchas funciones más con tiempos de ejecución que no están listadas aquí. Con suerte te las encontrarás en tu viaje por las ciencias de la computación.

Este contenido es una colaboración de los profesores de Dartmouth Computer Science Thomas Cormen y Devin Balkcom, con el equipo de contenidos de computación de Khan Academy. El contenido está bajo licencia CC-BY-NC-SA.

¿Quieres unirte a la conversación?

¿Sabes inglés? Haz clic aquí para ver más discusiones en el sitio en inglés de Khan Academy.