freeCodeCamp/guide/spanish/computer-science/notation/big-o-notation/index.md

5.2 KiB

title localeTitle
Big O Notation Notación Big O

Notación Big O

Como científico informático, si está trabajando en una pieza importante de software, es probable que tenga que poder estimar la rapidez con la que se ejecutará algún algoritmo u otro.

La notación Big O se utiliza en informática para describir el rendimiento o la complejidad de un algoritmo. En realidad, la notación Big O es un símbolo especial que te dice qué tan rápido es un algoritmo. Por supuesto, usará algoritmos predefinidos con frecuencia, y cuando lo haga, es vital entender qué tan rápido o lento son.

¿Cómo se ve la notación Big O?

Esto le indica la cantidad de operaciones que realizará un algoritmo. Se llama notación Big O porque se pone una "O grande" delante del número de operaciones.

Big O establece un peor tiempo de ejecución

Supongamos que usted es un médico que está tratando a Harry Abbit; puede consultar los registros electrónicos relacionados con el historial médico de Harry Abbit (es la primera persona en una lista). Consideremos la situación cuando su vida depende de todos los datos médicos disponibles. Supongamos que está utilizando la búsqueda simple para buscar una persona en los registros electrónicos. Usted sabe que la búsqueda simple toma O (n) tiempo para ejecutarse, por lo que tendrá que revisar cada una de las entradas de Abbit. Por supuesto, te has dado cuenta de que Abbit es la primera entrada, por lo que no tenías que mirar cada entrada; la encontraste al primer intento.

¿Este algoritmo tomó tiempo O (n)? ¿O tomó O (1) tiempo porque encontró a la persona en el primer intento?

En este caso, ese es el mejor de los casos. Pero la notación Big O es sobre el peor de los casos. Eso es O (n) tiempo (la búsqueda simple todavía toma). Es una garantía de que la búsqueda simple nunca será más lenta que el tiempo O (n).

Los tiempos de ejecución del algoritmo crecen a diferentes ritmos.

Supongamos que se tarda 1 milisegundo en marcar una entrada. Con una búsqueda simple, el médico tiene que verificar 10 entradas, por lo que la búsqueda tarda 10 ms en ejecutarse. Por otro lado, solo tiene que verificar 3 elementos con un algoritmo de búsqueda binario (log10 es aproximadamente 3), por lo que la búsqueda tarda 3 ms en ejecutarse.

Pero de manera realista, la lista tendrá más de cien elementos.

Si lo hace, ¿cuánto tiempo tomará la búsqueda simple? ¿Cuánto tiempo tomará la búsqueda binaria?

El tiempo de ejecución de la búsqueda simple con 1 billón de elementos será de 1 billón de ms, que es de 11 días. El problema es que los tiempos de ejecución para la búsqueda binaria y la búsqueda simple no crecen al mismo ritmo .

Entonces, a medida que la lista de números aumenta, la búsqueda binaria se vuelve mucho más rápida que la búsqueda simple. Es decir, a medida que aumenta el número de elementos, la búsqueda binaria tarda un poco más en ejecutarse. Pero la búsqueda simple toma mucho más tiempo para ejecutar. Entonces, a medida que la lista de números aumenta, la búsqueda binaria se vuelve mucho más rápida que la búsqueda simple.

Por eso no basta con saber cuánto tarda en ejecutarse un algoritmo; debe saber cómo aumenta el tiempo de ejecución a medida que aumenta el tamaño de la lista. Ahí es donde entra la notación Big O.

La notación Big O te permite comparar el número de operaciones

Por ejemplo, supongamos que tiene una lista de tamaño n. La búsqueda simple necesita verificar cada elemento, por lo que tomará n operaciones. El tiempo de ejecución en notación Big O es O (n).

¿Dónde están los segundos?

No hay ninguno - Big O no te dice la velocidad en segundos. La notación Big O le permite comparar el número de operaciones. Te dice qué tan rápido crece el algoritmo.

</ p

Tiempos de ejecución más comunes para algoritmos

Una lista de los tiempos de ejecución más comunes para algoritmos en términos de notación Big O. Aquí hay cinco tiempos de ejecución de Big O que encontrarás mucho, ordenados de más rápido a más lento:

  1. O (log n), también conocido como log time . Ejemplo: búsqueda binaria.
  2. O (n), también conocido como tiempo lineal . Ejemplo: Búsqueda simple.
  3. O (n * log n) Ejemplo: un algoritmo de clasificación rápida, como quicksort (que aparece en el capítulo 4).
  4. En 2) Ejemplo: un algoritmo de clasificación lenta, como la selección por selección (que aparece en el capítulo 2).
  5. ¡En!) Ejemplo: un algoritmo muy lento, como el vendedor que viaja (¡a continuación!).

Este artículo solo cubre los conceptos básicos de Big O. Para una explicación más detallada, eche un vistazo a sus respectivas guías FreeCodeCamp para algoritmos.

Más información